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

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

 채택된 답변

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!