矩形波をDFTまたはFFTを利用して周波数ドメインのスペクトラムに変換する方法
古いコメントを表示
矩形波をDFTまたは、FFTを利用して周波数ドメインのスペクトラムに変換してプロットしたいです。 ただし、矩形波の立ち上がり時間と立下り時間を無限小ではなく、有限時間に設定してその波形のスペクトラムの検証を行いたいです。 どのようにすればよろしいでしょうか? 具体的なコード等をご提示いただきたく思います。 宜しくお願い致します。
採用された回答
その他の回答 (1 件)
Atsushi Matsumoto
2018 年 8 月 29 日
立ち上がりの時間で波形生成できたら良いのかもしれませんが、まずは簡単に三角波を飽和させて矩形波を生成してみました。
Fs = 10000; % サンプリング周波数
dt = 1/Fs; % サンプル時間
t = 0:dt:1-dt; % 1sの時間軸
Fsig = 50; % 矩形波の周波数
for A = 1:5:21
x = A*sawtooth(2*pi*Fsig*t, 0.5); % 三角波生成してA倍
x(x>=1) = 1;x(x<=-1)=-1; % +-1で飽和処理=>矩形波
figure(1)
plot(t,x), hold on % 時間軸応答を追加プロット
figure(2)
[p, f] = pspectrum(x); % スペクトル計算
plot(f, 20*log10(p)), hold on % 周波数応答プロット
end
figure(1)
xlim([0 0.2]) % X軸範囲指定
legend('1', '6', '11', '16', '21')
figure(2)
ylim([-100 0]) % Y軸範囲指定
カテゴリ
ヘルプ センター および File Exchange で スペクトル解析 についてさらに検索
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!
