相频响应 matlab,【急】请教 fft、freqz、bode 求相频响应的区别及原因

该楼层疑似违规已被系统折叠 隐藏此楼查看此楼

已知冲击响应,要画传递函数的相频响应,先后分别使用 fft、freqz、bode函数,发现fft和freqz的趋势是一样的,但是角度数值不同。而bode的趋势则和fft、freqz都不同。代码如下,SP1是函数的冲击响应,采样率4800。

多谢各位啦! ^___^

%% 用 fft 函数

H_complex_two = fft(SP1,4800);

H_complex = H_complex_two(1:end/2);

F = 1:2400;

H_angle = unwrap(angle(H_complex))/pi*180;       % Degree

figure;plot(F,H_angle)

axis([20,150,-900,-100]);

grid on

ylabel('Phase (Degree)');title('FFT');

xlabel('Frequency (Hz)');

%% 用 freqz

[H,W] = freqz(SP1,1,4800);

W = W/pi*2400;

Ha = unwrap(angle(H))/pi*180;

figure;plot(W,Ha)

axis([20,150,-1600,-800]);grid on

xlabel('Frequency (Hz)');ylabel('Phase (Degree)');title('freqz')

%% 用 bode

htf = tf(SP1.',1,1/4800);

Wtf = 2*pi*(1:2400);     % 幅频响应和相频响应分析频率(rad/sec)

[Htf_Mag,Htf_Phase_temp] = bode(htf,Wtf);     % 原次级通道频响

Htf_Phase = zeros(1,2400);

for j = 1:2400

Htf_Phase(j) = Htf_Phase_temp(1,1,j);

end

Htf_Phase = unwrap(Htf_Phase);

figure;plot(Wtf/2/pi,Htf_Phase,'k');

axis([20,150,-30,40]);grid on;

xlabel('Frquency (Hz)');ylabel('Phase (Degree)');title('bode');

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值