soundがcaptureできれば...最終回
FM変調波の観測( 0dB キャリー、-10dBにて変調、 efu様のWaveGen使用)
1.100dB以下も、表示しました。
入力が大きいと、100dB以上の差がある時が、ありますので、もう少し、目盛りを拡げました。
直線性は、良好です。
efu様御製作の、WaveGenを使用して、WaveGen側で、ゲインを絞って行きますと...
0dB -10dB -20dB -40dB
-60dB -80dB -90dB
よい結果です。
2. 窓関数の威力
以前、私は、窓関数を変えても、あまり変わりはないと、書いたのですが、これは、大きな間違いでした。
データの数が正しくなかったので、窓関数の力が、発揮されなかったのです、反省。
1データは2byteなのに、1データを1byteに勘定して、半分のデータ数で、観測していた... (-_-)
2048点と言う、少ないサンプリング数でも、
窓関数を使えば、充分な、解像度が得られますね、感謝!
矩形窓
ハニング窓
ハミング窓
ブラックマンハリス(ブラックマン)窓
次は、変わった所で、サイン窓です..... 何に使うか? 知らんのです...(^_^;;
窓関数の種類は、ウィキペディア(Wikipedia) で、窓関数を当たってみてください。
窓関数も、C言語のほうで、dll 化しましたので、どんどん追加できます。
「マネージアセンブリの作成と使用」は、 184.soundがcaptureできれば...FFT部分を変えるには.を、参照下さい。
3. パワースペクトラムの計算方法
この計算方法は、ここの 、お力をお借りしました。
Nは、サンプリング数、sfは、サンプリング周波数。T=N/sf、つまり、何秒かかって、N個取り込んだのか。
このwebを遡ると、RIKENのSATELLITEと言う、webに辿りつきます、よく解らんのですが、なんか、凄そうですよ、興味あり。
「SATELLITEとは、複雑な未知システムを効率よく解析するためのシステム解析支援統合環境です.
SATELLITE には,BPEL で開発された UNIX/Linux で動作する 2.9x 系列 と,これを継承し Windows,MacOS X,Linux,FreeBSD など
様々な OS で動作可能なマルチプラットフォーム環境の 4.x 系列 の 2つがあります.」
以上、ご紹介及び、御礼方々。
それから、Vrms,Vp_p,Vp_o等から dBへの変換、または、その逆の計算の式、及びwebでの自動換算は、
小野測器様のお力を、お借りしました、御礼申し上げます。 m(__)m
dBVr = 10 LOG{Vrms /(基準)}^2 = 20 LOG (Vrms) [基準は実効値 1 Vrms]
mV rms, mV p_oは、Rect.Value(矩形窓の時のスペクトラムの値)から、逆算致しました。
Rect.Valueと、書いてある所の値が、矩形窓を使用したときの、波形のパワースペクトラムの値です。
窓関数を使用しますと、矩形窓の時と、値が少しずつ、違ってきます。
254mV rmsと、書いてありますのは、この、矩形窓使用の時の、値 -11.9dBを、Vrmsに換算したものです。
尚、dB adjustと、ありますのは、
サウンドカードのゲインが足りない、volumeの微調整が難しい時に、微調整するためのもので、
既知の信号を用いて、校正するためのものです。
4. 漸く、基本的な所は、固まりました
周波数軸の拡大等、課題がありますが、
これは、元々、画面上の512ポイントで、2048,4096,8192、....等のポイントを圧縮して表示しておりますので、
これの、逆を行ってやれば、よいのです。
もう少し、修正が必要では、ありますが、お伝えできる事は、出尽くしたと、思いますので
この話題につきましては、お開きに、させていただきます。
ご興味をお持ちの方が、おられるかどうか、全く解りませぬが、後ほど、プログラムも、上掲させていただきます。
ご清聴ありがとうございました、 m(_ _)m
DSB波
AM波
自作 analog 500,2000Hz AFツートーン波形
H18.9.16