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