複素周波数変換が、有利では?

1.進化する myCapture Sound その2

    使いやすいように、変化させています。

今回は、sampling周波数を、    選択できるように、しました。

ProDigy 7.1XTの場合、16, 22.05, 24, 32, 44.1, 48, 88.2, 96 各KHzの、samplingが可能です。

周波数分解能=sampling frequency / numberOfSampling

ですから、sampling数が同じなら、sampling周波数が低い方が、周波数分解能は優れています。

但し、Resetを掛けていますので、画面は、一旦消えます。

画面を消さないで、Resetする方法は、まだ、思いつきません、むにゃむにゃ。

それから、mixしますので、through スルーした場合、及び not through(mixed)の場合の、出力波形を観測できるように、しました。

mixした場合の、オシロの波形は、逆FFTで算出しました。

 

2.複素周波数変換と、実周波数による通常の周波数変換では、何れが有利か?

複素周波数変換

input = sin 2KHz (Real), mixer = exp^ 5KHz (Complex)

output = 3KHz & 7KHz ( output amplitude == input amplitude)

実周波数による変換

input = sin 2KHz (Real), mixer = cos  5KHz (Real)

output = 3KHz & 7KHz ( output amplitude == input amplitude/2)  -6dB

どちらも、出力周波数は同じですが、

複素周波数変換のほうは、振幅が、inputと同じ。

実周波数による変換では、振幅が、inputの半分

に、なります。

これは、

168.Octaveで Signal Processing その2

で、調べてみましたように、シミュレーションでも、そうなります。

input = sin 100Hz (Real), mixer = cos 300Hz (Real)

output = 200Hz & 400Hz ( output amplitude = input amplitude/2)

 

input = sin 100Hz (Real), mixer = exp^ 300Hz (Complex)

output = 200Hz & 400Hz ( output amplitude = input amplitude)

従いまして、

    複素周波数変換のほうが、S/N的に、有利だと、思いますが、どやろか?

3.複素入力に対応するために

    入力が複素数になると、もはや、実入力用のFFTである rdft(大浦様の御製作のもの)は、使えません。

複素入力に対応した、cdft(やはり、大浦様御製作)が、必要です。

マネージアセンブリの作成時は、大浦様のfftsg.c : FFT Package in C - Fast Version III (Split-Radix)を

使わせて頂きました、ありがとうございます。

窓関数(WindowFunc)も、虚部、実部と、別々に、窓掛けせねば、なりません。

マネージアセンブリを利用する側の、C#のプログラムは、こんな感じです。

Mixerも、 myCaputere Sound プログラム内に、書いていますので、サイズが段々、膨らんできました。

それに連れて、SSBへの道も、段々開けていけば、いいなあと、思いますが、そんな甘くは、なさそうね....

H.18.10.11