スペクトルのプロット方法

4 views (last 30 days)
太郎 山田
太郎 山田 on 10 Jul 2020
Edited: michio on 13 Jul 2020
異なる周波数を持つ2つの正弦波を混合した時に新しい周波数の信号が発生する(ビート?)のを確認するため、MATLABを用いてやりたいのですが、どのようにうてば良いでしょうか?
中間周波数?というものらしいですが本当に発生するのでしょうか?
数行でできるそうですが、MATLAB初心者なので分かりやすく教えて頂ければ幸いです。

Answers (1)

takemoto
takemoto on 13 Jul 2020
Edited: michio on 13 Jul 2020
例えば、100Hzの搬送波を10Hzの正弦波で変調する場合、以下の様に書けると思います。
%%
fs = 1000;
t = 0 :1/fs : 1;
y1 = sin(2*pi*10*t); %ベースバンド信号
y2 = sin(2*pi*100*t); %搬送波(中間周波数、IF)
y = y1.*y2; % mixing
Y = fft(y);
f = 0 : fs/length(Y) : fs*(1-1/length(Y));
plot(f,abs(Y)), xlim([0,fs/2]), grid
%%
この例の場合、100-10=90[Hz]と、100+10=[110]Hzが、ビート周波数に相当します。
Signal Processing Toolboxや、Communications Toolboxをお持ちであれば、以下も参考になると思います。

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!