soundがcaptureできれば...その2
1.Spectrum Analysisも、したい...
そんな訳で、Spectrurmも、観察することに、しました。
FFTが必要ですが、大変残念な事に、私、まだ、バタフライ演算が、理解できておりません...クシュン。
C#で書かれた、素晴らしいSoundLibraryを、webにて、発見いたしましたので、これを使わせていただきました。
これが無ければ、何もできない所でした、素晴らしいLibraryを、有難うございます m(_ _)m
機能が多すぎて、全然使い切れていません、すごい作品です!
この方のホームページは、信号処理等の理論編もあり、C#プログラミングだけでは、ありません、ほんまに、す、ご、い!
2.SoundLibraryの使い方
自分なりに、そうではないだろうか?と、考えました。
Microsoft VisualC# ExpressEditionにて、buildします。
そうしますと、(私は、C_sharpというDirectoryに、C#プログラムを集めています。)
この、SoundLibrary.dllを、プロジェクトの参照に、加えるのです。
以降は
こうして、SoundLibraryのnamespaceを、取り込むのだと、思います。
私は、こうして、利用させて頂いております。
このLibraryの、実に、多機能な事、感嘆に値します。(使い方は、教えてくれへんけど、Library中の、丁寧な解説を読めば、何とかなりそう。)
私は、窓関数と、FFTを、使わせて頂きました、再度、深く、御礼申し上げます。
FFTは、8192ポイントで、行いました。
まだまだ、手直しが必要な、プログラムですが、ご参考までに、ここに掲載します。(バグは、取ってない)
3.性能は、如何?
efu様のWaveGenを、発振器に、使わせていただきました。
2KHz矩形波です。
オシロは、10倍まで、拡大して、見ることができます。勿論、spectrumは、変わりません。
これを見ますと、
基本波2KHzに対して、
6KHz成分 -10dB位
10KHz -16dB位
14KHz -20dB位
でしょうか。(まだ、目盛りもないし、正確では、ありませんねん。)
本物のスペアナで、見ると
うーむ、ちょっと、値が違ってます、傾向は、把握できるけど。(観測結果が、変動するのです、えらいこっちゃ。)
まだまだ、修正が必要な、プログラムですね。
4.その他の観測結果
このプログラムは、サンプリング周波数を変える事ができますので、この違いを観測しました。
入力は、同じ2KHz矩形波 (縦軸は、全て 2KHz/dev )
11025Hz sampling
22050Hz sampling
44100Hz sampling
48000KHz sampling
この結果より、1番それらしいのは、44KHz samplingしたものでした。
その他、44KHz samplingでの、観測 (全て2KHz)
最後は、ホワイトノイズです、これで、サウンドカードの、総合的な周波数特性が掴めますね。
2KHz/dev (14KHz位までは、フラットですね)
私が、今使っているサウンドカードは、古い、YAMAHAの YMF724の乗った、バルク品です。
H.18.7.21