Julia言語でPinkTSP信号を作るプログラムを書いた。とは言っても、以前書いたMatlabのものをそのまま移植しただけ。そもそも参考にしたのは以下の文献。
- 藤本卓也. “低域バンドでのSN比改善を目的としたTSP信号に関する検討.” 日本音響学会研究発表会講演論文集, pp.433–432. 1999年9月.
- 守谷直也, 金田豊. “Logarithmic TSP 信号を用いた高調波歪の検討.” 日本音響学会研究発表会講演論文集, pp.637–638. 2004年3月.
最低でも2秒間の信号(4回の同期加算)を44100Hz/16bitで欲しいときには
julia> pinktsp_generate(2.0, 44100, 16, 4);
とすると、pinktsp_2972msec_44100Hz_16bits_4times.wav
というファイルができる。1回あたりの信号長は2秒よりも長い2の累乗の長さになるようにしてあるので、結果として217÷44100=2.972秒となる(2の累乗の信号長にしておくとFFTが効率よく使えるので)。掃引方向を上向きにしたり(上記守谷文献参照)、スピーカ再生時にクリックノイズが出ないようにしたり、実務上の理由によりオリジナルの藤本文献とは違うことをいくつかしている。
この信号を使って録音したものをインパルス応答に戻すプログラムはまだ書いてない。また後日、時間があるときに。
コードは以下。
続きを読む