-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
added complete reference list with script to generate it
- Loading branch information
Jesper Brunnstroem
committed
May 21, 2024
1 parent
8431a87
commit 8910ec1
Showing
6 changed files
with
179 additions
and
5 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file was deleted.
Oops, something went wrong.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,114 @@ | ||
""" | ||
Run this script to collect all references from the docs and write them out at the end of the front page of the documentation. | ||
""" | ||
|
||
import pathlib | ||
import os | ||
import sys | ||
import importlib | ||
import numpy as np | ||
|
||
def main(): | ||
current_dir = pathlib.Path(__file__).parent | ||
package_dir = current_dir.parent.parent / "aspcol" | ||
output_file_path = current_dir / "references.rst" | ||
|
||
sys.path.append(str(package_dir)) | ||
|
||
module_names = [] | ||
for f in package_dir.iterdir(): | ||
if f.suffix == ".py": #only search top level | ||
if f.stem != "__init__": | ||
module_names.append(f.stem) | ||
|
||
modules = [importlib.import_module(f"aspcol.{m}") for m in module_names] | ||
docs = [m.__doc__ for m in modules] | ||
|
||
all_refs = get_all_refs(docs) | ||
ids = get_ref_identifiers(all_refs) | ||
|
||
ref_list = extract_list_according_to_ids(all_refs, ids) | ||
ref_list = "".join(ref_list) | ||
|
||
with open(output_file_path, "w", encoding="utf-8") as f: | ||
f.write(f"References\n----------\n{ref_list}") | ||
|
||
|
||
def find_start_idxs(all_refs, ids): | ||
# Connect start idxs to IDs and put in dictionary | ||
# Put all start idxs (including duplicates) in a list | ||
id_start_idxs = {} | ||
all_start_idxs = [] | ||
for ref_id in ids: | ||
search_start = 0 | ||
while True: | ||
idx = all_refs.find(f"[{ref_id}]", search_start) | ||
if idx == -1: | ||
break | ||
search_start = idx + len(ref_id) + 2 | ||
#str_to_check = str_to_check[idx + len(ref_id) + 2:] | ||
all_start_idxs.append(idx) | ||
if ref_id not in id_start_idxs: | ||
id_start_idxs[ref_id] = idx | ||
|
||
# Get end idxs for all start idxs | ||
# Manually correct the end idx of the last reference | ||
all_idxs = {} | ||
all_start_idxs = np.sort(all_start_idxs) | ||
for ref_id, start_idx in id_start_idxs.items(): | ||
idx_diff = all_start_idxs - start_idx | ||
idx_diff[idx_diff <= 0] = int(1e8) | ||
end_idx = all_start_idxs[np.argmin(idx_diff)] | ||
|
||
if end_idx == 0: | ||
end_idx = len(all_refs) | ||
all_idxs[ref_id] = (start_idx, end_idx) | ||
|
||
return all_idxs | ||
|
||
|
||
def extract_list_according_to_ids(all_refs, ids): | ||
all_idxs = find_start_idxs(all_refs, ids) | ||
all_idxs = dict(sorted(all_idxs.items())) | ||
#num_refs = len(ids) | ||
|
||
# ref_pos = [all_refs.find(ref_id) for ref_id in ids] | ||
# ref_pos.append(len(all_refs)+1) #to include the last reference | ||
# ref_pos = np.sort(ref_pos) | ||
# ref_pos -= 1 #to include the "[" in the reference | ||
ref_list = [all_refs[start_idx:end_idx] for ref_id, (start_idx, end_idx) in all_idxs.items()] | ||
|
||
#ref_list = [all_refs[ref_pos[i]:ref_pos[i+1]] for i in range(num_refs)] | ||
ref_list = [ref.replace("\n", "") for ref in ref_list] | ||
ref_list = [ref.strip() for ref in ref_list] | ||
ref_list = [f"{ref}\n\n" for ref in ref_list] | ||
return ref_list | ||
|
||
def get_all_refs(docs): | ||
all_refs = [] | ||
for txt in docs: | ||
split_txt = txt.split("References\n----------\n") | ||
if len(split_txt) > 1: | ||
references = split_txt[1] | ||
all_refs.append(references) | ||
full_ref_list = "\n".join(all_refs) | ||
return full_ref_list | ||
|
||
|
||
def get_ref_identifiers(references): | ||
ids = [] | ||
#references.split("[]") | ||
for str_part in references.split("["): | ||
if len(str_part) > 1: | ||
part_list = str_part.split("]") | ||
if len(part_list) > 1: | ||
id = part_list[0] | ||
if id != "link": | ||
if id not in ids: | ||
ids.append(id) | ||
return ids | ||
|
||
|
||
|
||
if __name__ == "__main__": | ||
main() |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,56 @@ | ||
References | ||
---------- | ||
[absilOptimization2008] P.-A. Absil, R. Mahony, and R. Sepulchre, Optimization algorithms on matrix manifolds. Princeton, N.J. ; Woodstock: Princeton University Press, 2008. | ||
|
||
[antweilerNLMStype2008] C. Antweiler, A. Telle, and P. Vary, “NLMS-type system identification of MISO systems with shifted perfect sequences,” Proceedings of the International Workshop on Acoustic Echo and Noise Control (IWAENC), Seattle, WA, Sep. 2008. | ||
|
||
[antweilerSystem2014] C. Antweiler, S. Kuehl, B. Sauert, and P. Vary, “System identification with perfect sequence excitation - efficient NLMS vs. inverse cyclic convolution,” in Speech Communication; 11. ITG Symposium, Sep. 2014, pp. 1–4. | ||
|
||
[atkinsApproximate2013] J. Atkins, A. Strauss, and C. Zhang, “Approximate convolution using partitioned truncated singular value decomposition filtering,” in 2013 IEEE International Conference on Acoustics, Speech and Signal Processing, May 2013, pp. 176–180. doi: 10.1109/ICASSP.2013.6637632. `[link] <https://doi.org/10.1109/ICASSP.2013.6637632>`_ | ||
|
||
[brunnstromBayesianSubmitted] J. Brunnström, M. B. Møller, and M. Moonen, “Bayesian sound field estimation using moving microphones,” IEEE Open Journal of Signal Processing, submitted. | ||
|
||
[brunnstromSignaltointerferenceplusnoise2023] J. Brunnström, T. van Waterschoot, and M. Moonen, “Signal-to-interference-plus-noise ratio based optimization for sound zone control,” IEEE Open Journal of Signal Processing, vol. 4, pp. 257–266, 2023, doi: 10.1109/OJSP.2023.3246398. `[link] <https://doi.org/10.1109/OJSP.2023.3246398>`_ | ||
|
||
[brunnstromSound2023] J. Brunnström, T. van Waterschoot, and M. Moonen, “Sound zone control for arbitrary sound field reproduction methods,” in European Signal Processing Conference (EUSIPCO), Helsinki, Finland, Sep. 2023. `[link] <https://doi.org/10.23919/EUSIPCO58844.2023.10289995>`_ | ||
|
||
[brunnstromVariable2022] J. Brunnström, S. Koyama, and M. Moonen, “Variable span trade-off filter for sound zone control with kernel interpolation weighting,” in ICASSP 2022 - 2022 IEEE International Conference on Acoustics, Speech and Signal Processing (ICASSP), May 2022, pp. 1071–1075. doi: 10.1109/ICASSP43922.2022.9746550. `[link] <https://doi.org/10.1109/ICASSP43922.2022.9746550>`_ | ||
|
||
[chenShrinkage2010] Y. Chen, A. Wiesel, Y. C. Eldar, and A. O. Hero, “Shrinkage Algorithms for MMSE Covariance Estimation,” IEEE Trans. Signal Process., vol. 58, no. 10, pp. 5016–5029, Oct. 2010, doi: 10.1109/TSP.2010.2053029. `[link] <https://doi.org/10.1109/TSP.2010.2053029>`_ | ||
|
||
[crochiereWeighted1980] R. Crochiere, “A weighted overlap-add method of short-time Fourier analysis/synthesis,” IEEE Transactions on Acoustics, Speech, and Signal Processing, vol. 28, no. 1, pp. 99–102, Feb. 1980, doi: 10.1109/TASSP.1980.1163353. `[link] <https://doi.org/10.1109/TASSP.1980.1163353>`_ | ||
|
||
[dinizAdaptive2020] P. S. R. Diniz, Adaptive filtering: algorithms and practical implementation. Cham: Springer International Publishing, 2020. doi: 10.1007/978-3-030-29057-3. `[link] <https://link.springer.com/book/10.1007/978-3-030-29057-3>`_ | ||
|
||
[duchiDerivations2016] J. Duchi, 'Derivations for Linear Algebra and Optimization, 2016. `[link] <https://web.stanford.edu/~jduchi/projects/general_notes.pdf>`_ | ||
|
||
[forstnermetric2003] W. Förstner and B. Moonen, 'A metric for covariance matrices,' in Geodesy-The Challenge of the 3rd Millennium, E. W. Grafarend, F. W. Krumm, and V. S. Schwarze, Eds., Berlin, Heidelberg: Springer Berlin Heidelberg, 2003, pp. 299–309. doi: 10.1007/978-3-662-05296-9_31. `[link] <https://doi.org/10.1007/978-3-662-05296-9_31>`_ | ||
|
||
[hahnSimultaneous2018] N. Hahn and S. Spors, “Simultaneous measurement of spatial room impulse responses from multiple sound sources using a continuously moving microphone,” in 2018 26th European Signal Processing Conference (EUSIPCO), Sep. 2018, pp. 2180–2184. doi: 10.23919/EUSIPCO.2018.8553532. `[link] <https://doi.org/10.23919/EUSIPCO.2018.8553532>`_ | ||
|
||
[herdinCorrelation2005] M. Herdin, N. Czink, H. Ozcelik, and E. Bonek, 'Correlation matrix distance, a meaningful measure for evaluation of non-stationary MIMO channels,' in 2005 IEEE 61st Vehicular Technology Conference, May 2005, pp. 136-140 Vol. 1. doi: 10.1109/VETECS.2005.1543265. `[link] <https://doi.org/10.1109/VETECS.2005.1543265>`_ | ||
|
||
[itoFeedforward2019] H. Ito, S. Koyama, N. Ueno, and H. Saruwatari, “Feedforward spatial active noise control based on kernel interpolation of sound field,” in IEEE International Conference on Acoustics, Speech and Signal Processing (ICASSP), Brighton, United Kingdom: IEEE, May 2019, pp. 511–515. doi: 10.1109/ICASSP.2019.8683067. `[link] <https://doi.org/10.1109/ICASSP.2019.8683067>`_ | ||
|
||
[jalmbyFast2023] M. Jälmby, F. Elvander, and T. van Waterschoot, “Fast low-latency convolution by low-rank tensor approximation,” in ICASSP 2023 - 2023 IEEE International Conference on Acoustics, Speech and Signal Processing (ICASSP), Rhodes, Greece, Jun. 2023. `[link] <https://doi.org/10.1109/ICASSP49357.2023.10095908>`_ | ||
|
||
[jalmbyLowrank2021] M. Jälmby, F. Elvander, and T. van Waterschoot, “Low-rank tensor modeling of room impulse responses,” in 2021 29th European Signal Processing Conference (EUSIPCO), Aug. 2021, pp. 111–115. doi: 10.23919/EUSIPCO54536.2021.9616075. `[link] <https://doi.org/10.23919/EUSIPCO54536.2021.9616075>`_ | ||
|
||
[katzbergSpherical2021] F. Katzberg, M. Maass, and A. Mertins, “Spherical harmonic representation for dynamic sound-field measurements,” in ICASSP 2021 - 2021 IEEE International Conference on Acoustics, Speech and Signal Processing (ICASSP), Jun. 2021, pp. 426–430. doi: 10.1109/ICASSP39728.2021.9413708. `[link] <https://doi.org/10.1109/ICASSP39728.2021.9413708>`_ | ||
|
||
[koyamaSpatial2021] S. Koyama, J. Brunnström, H. Ito, N. Ueno, and H. Saruwatari, “Spatial active noise control based on kernel interpolation of sound field,” IEEE/ACM Transactions on Audio, Speech, and Language Processing, vol. 29, pp. 3052–3063, Aug. 2021, doi: 10.1109/TASLP.2021.3107983. `[link] <https://doi.org/10.1109/TASLP.2021.3107983>`_ | ||
|
||
[ledoitQuadratic2020] O. Ledoit and M. Wolf, “Quadratic shrinkage for large covariance matrices,” Dec. 2020, doi: 10.5167/UZH-176887. `[link] <https://doi.org/10.5167/UZH-176887>`_ | ||
|
||
[leeFast2020] T. Lee, L. Shi, J. K. Nielsen, and M. G. Christensen, “Fast generation of sound zones using variable span trade-off filters in the DFT-domain,” IEEE/ACM Transactions on Audio, Speech, and Language Processing, vol. 29, pp. 363–378, Dec. 2020, doi: 10.1109/TASLP.2020.3042701. `[link] <https://doi.org/10.1109/TASLP.2020.3042701>`_ | ||
|
||
[paleologuLinear2018] C. Paleologu, J. Benesty, and S. Ciochină, “Linear system identification based on a Kronecker product decomposition,” IEEE/ACM Transactions on Audio, Speech, and Language Processing, vol. 26, no. 10, pp. 1793–1808, Oct. 2018, doi: 10.1109/TASLP.2018.2842146. `[link] <https://doi.org/10.1109/TASLP.2018.2842146>`_ | ||
|
||
[ribeiroKernel2020] J. G. C. Ribeiro, N. Ueno, S. Koyama, and H. Saruwatari, “Kernel interpolation of acoustic transfer function between regions considering reciprocity,” in 2020 IEEE 11th Sensor Array and Multichannel Signal Processing Workshop (SAM), Jun. 2020, pp. 1–5. doi: 10.1109/SAM48682.2020.9104256. `[link] <https://doi.org/10.1109/SAM48682.2020.9104256>`_ | ||
|
||
[ruizComparison2021] S. Ruiz, T. Dietzen, T. van Waterschoot, and M. Moonen, “A comparison between overlap-save and weighted overlap-add filter banks for multi-channel Wiener filter based noise reduction,” in 2021 29th European Signal Processing Conference (EUSIPCO), Aug. 2021, pp. 336–340. doi: 10.23919/EUSIPCO54536.2021.9616352. `[link] <https://doi.org/10.23919/EUSIPCO54536.2021.9616352>`_ | ||
|
||
[uenoDirectionally2021] N. Ueno, S. Koyama, and H. Saruwatari, “Directionally weighted wave field estimation exploiting prior information on source direction,” IEEE Transactions on Signal Processing, vol. 69, pp. 2383–2395, Apr. 2021, doi: 10.1109/TSP.2021.3070228. `[link] <https://doi.org/10.1109/TSP.2021.3070228>`_ | ||
|
||
[uenoKernel2018] N. Ueno, S. Koyama, and H. Saruwatari, “Kernel ridge regression with constraint of Helmholtz equation for sound field interpolation,” in 2018 16th International Workshop on Acoustic Signal Enhancement (IWAENC), Tokyo, Japan: IEEE, Sep. 2018, pp. 436–440. doi: 10.1109/IWAENC.2018.8521334. `[link] <https://doi.org/10.1109/IWAENC.2018.8521334>`_ | ||
|