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

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

 Respuesta aceptada

MathWorks Support Team
MathWorks Support Team el 25 de Oct. de 2013

0 votos

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)')
なお、入力信号は周波数レンジ全体を占める周波数特性を持っていないと、推測される周波数応答の精度は下がることが予測されますので、ご注意ください。

Más respuestas (0)

Categorías

Más información sobre 動的システム モデル en Centro de ayuda y File Exchange.

Productos

Versión

R2010a

Etiquetas

Community Treasure Hunt

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

Start Hunting!