Skip to content

Commit

Permalink
added complete reference list with script to generate it
Browse files Browse the repository at this point in the history
  • Loading branch information
Jesper Brunnstroem committed May 21, 2024
1 parent 8431a87 commit 8910ec1
Show file tree
Hide file tree
Showing 6 changed files with 179 additions and 5 deletions.
2 changes: 1 addition & 1 deletion aspcol/distance.py
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@
References
----------
[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>`_ \n
[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] <(doi.org/10.1007/978-3-662-05296-9_31>`_ \n
[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>`_ \n
[duchiDerivations2016] J. Duchi, 'Derivations for Linear Algebra and Optimization, 2016. `[link] <https://web.stanford.edu/~jduchi/projects/general_notes.pdf>`_ \n
[absilOptimization2008] P.-A. Absil, R. Mahony, and R. Sepulchre, Optimization algorithms on matrix manifolds. Princeton, N.J. ; Woodstock: Princeton University Press, 2008. \n
"""
Expand Down
2 changes: 1 addition & 1 deletion aspcol/soundfieldestimation.py
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@
References
----------
[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>`_ \n
[brunnstromBayesianSubmitted] J. Brunnström, M. B. Mo/ller, and M. Moonen, “Bayesian sound field estimation using moving microphones,” IEEE Open Journal of Signal Processing, submitted. \n
[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. \n
[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>`_ \n
"""
import numpy as np
Expand Down
3 changes: 0 additions & 3 deletions docs/collect_references.py

This file was deleted.

114 changes: 114 additions & 0 deletions docs/source/collect_references.py
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()
7 changes: 7 additions & 0 deletions docs/source/index.rst
Original file line number Diff line number Diff line change
Expand Up @@ -27,6 +27,13 @@ API Reference
aspcol.soundfieldestimation
aspcol.utilities

Reference list
==============
A full list of the papers relevant to the implemented algorithms in this package can be found at the following link.

.. toctree::

references

License
=======
Expand Down
56 changes: 56 additions & 0 deletions docs/source/references.rst
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>`_

0 comments on commit 8910ec1

Please sign in to comment.