離散システムの入出力​信号から周波数応答を​確認する方法を教えて​ください。

ある離散システムの入出力信号から振幅応答と位相応答を求めたいのですが方法がわかりません。手順を教えてください。

 採用された回答

MathWorks Support Team
MathWorks Support Team 2013 年 10 月 25 日

0 投票

Signal Processing Toolboxで提供される tfestimate 関数を利用すると、Welchの平均化ピリオドグラム法をベースにシステムの伝達関数を推定することができます。下記は、入出力信号から離散システムの振幅応答と位相応答を求める例となります。
Fs = 1000;
Fc = 100;
x = randn(1,2048);
[num,den] = butter(4,Fc/(Fs/2));
y = filter(num,den,x);
[Txy,F] = tfestimate(x,y,hann(512),400,512,Fs);
mag = 20*log10(abs(Txy));
phs = unwrap(angle(Txy))*180/pi;
subplot(211)
plot(F,mag),xlabel('Frequency(Hz)'),ylabel('Magnitude(dB)')
subplot(212)
plot(F,phs),xlabel('Frequency(Hz)'),ylabel('Phase(deg)')
なお、入力信号は周波数レンジ全体を占める周波数特性を持っていないと、推測される周波数応答の精度は下がることが予測されますので、ご注意ください。

その他の回答 (0 件)

カテゴリ

ヘルプ センター および File Exchange動的システム モデル についてさらに検索

製品

リリース

R2010a

タグ

Community Treasure Hunt

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

Start Hunting!