5

周波数ホッピングを使用した BFSK 変調と復調の実装に取り​​組んでおり、Matlab を使用して結果をテストする必要があります。BFSK プログラムから取得している出力は、さまざまなビットのキャリア信号に対応する正弦値の配列です。これらの信号は、2.51KHz を中心とし、その周囲に 4KHz の帯域幅を持つパスバンド信号です。しかし、復調ステップをテストするには、信号をベースバンドに変換する必要があります。したがって、出力信号の中心を 0Hz にする必要があります。

2.51KHz の複雑な信号を作成し、それを時間領域で乗算すると、この仕事ができることを私は知っています。fft()しかし、信号の中心周波数をシフトし、信号を取得しifft()てベースバンド信号を生成するために、matlabの関数で使用できる方法はありますか?

ありがとう、安州

4

1 に答える 1

3

これは完全に可能です。ifft を計算する前に、fft プロセスから出てくる複雑なベクトルを回転させるだけです。

擬似コードは次のようになります。

shiftIndex  = 20; %// This value would depend on the frequency shift requited

Y = fft(x); %// Where x is the input vector
z = ifft (  [Y((shiftIndex+1):end);      Y(1:shiftIndex)]  );

インデックスをシフトするために必要なビンの数については、次の質問が役立つ場合があります。. .

https://dsp.stackexchange.com/questions/2970/how-to-make-frequency-axis-for-even-and-odd-fft-length/2971#2971

これは、将来、このような質問を DSP.stackexchange.com に投稿すると、おそらくより迅速な回答が得られることを思い出させてくれます。

于 2012-08-03T11:36:10.670 に答える