FFTの縦軸は、今まで適当に表示していたけど、ちょっと調べてみた。
入力する信号は、NAudioでキャプチャすることを想定しているので16bitの整数とする。 なので、最大値は32767。 MathNetのFFTからの出力は複素数で出てくるので、実部の二乗と虚部の二乗の和の平方根を取り、Logを取って20倍してdBに変換している。
入力波形がはみ出しているけど、気にしない。
最大入力時のdB値は、117.3となった。
10000から10分の1づつ振幅を減らしていくと、左図のようになった。 10000から100までは、20dBづつ減っている。 10以下では、20dBダウンからずれている。
ちなみに、入力信号が振幅を1の場合のスペクトルを見てみると、20kHzにもスペクトルが現れている。
これは、入力信号が整数に限定されているので、0と1の信号の繰り返しになってしまい波形が歪んでいることに起因すると思われる。 20dBダウンからのずれも同じ原因だろう。
というわけで、縦軸は0~90dBで目盛ってやればよさそうだと判った。