声振论坛

 找回密码
 我要加入

QQ登录

只需一步,快速开始

查看: 2047|回复: 6

[综合讨论] Matlab中幅频函数和相频函数的误差比较

[复制链接]
发表于 2013-6-14 15:54 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?我要加入

x
本帖最后由 牛小贱 于 2014-3-31 22:59 编辑

用tfe函数求系统频率响应函数时,相频函数的误差要比幅频函数的误差大很多,大家讨论一下原因。注:tfe已被TFESTIMATE函数取代。
给定一个系统(传递函数),首先绘制幅频和相频函数;然后给系统一个脉冲输入,求得系统脉冲响应,再用tfe求系统幅频和相频函数;可以对比幅频函数和相频函数的误差。
程序
  1. N=4*400;
  2. fs=400;
  3. n=0:N-1;
  4. t=n/fs;
  5. x=zeros(1,N);
  6. x(101)=fs;
  7. x(102)=fs;
  8. %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 生成脉冲输入信号
  9. b=[1];
  10. a=[1,100];
  11. w=linspace(0,200*2*pi,401);
  12. [mag,ph,w]=bode(b,a,w);
  13. w_hz=(w/(2*pi))';
  14. H_s = tf(b,a);
  15. y=lsim(H_s,x,t);
  16. %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 生成脉冲输出信号
  17. subplot(221);
  18. plot(w_hz,mag);
  19. title('幅频函数图');
  20. grid;
  21. subplot(222);
  22. plot(w_hz,ph);
  23. title('相频函数图');
  24. grid;

  25. N_fft=256;
  26. window=hanning(N_fft);
  27. noverlap=N_fft/2;
  28. dflag='none';
  29. [Txy,f]=tfe(x,y,N_fft,fs,window,noverlap,dflag);
  30. subplot(223);
  31. plot(f,abs(Txy));
  32. xlabel('Frequency / Hz')
  33. ylabel('Magnitude')
  34. title('幅频函数');
  35. grid;
  36. subplot(224);
  37. plot(f,angle(Txy)/pi*180);
  38. xlabel('Frequency / Hz')
  39. ylabel('Phase / Degree')
  40. title('相频函数');
  41. grid;
复制代码



点评

赞成: 3.0
赞成: 3
建议LZ以后学会利用“<>代码”功能!方便大家。  发表于 2014-3-31 22:59
回复
分享到:

使用道具 举报

发表于 2013-6-14 16:31 | 显示全部楼层
建议直接贴代码, 不然我这边下载打开后会是乱码
 楼主| 发表于 2013-6-14 18:40 | 显示全部楼层
发表于 2013-6-15 17:55 | 显示全部楼层
随心就动 发表于 2013-6-14 18:40
没有啊,txt的文档在百度网盘上可以直接查看,我试了一下也可以下载的

LS可能不清楚我是使用繁体的!
原先的txt档下载后, 就是看到许多乱码! 原因我也不清楚
反正好像也没几行, 直接贴上好像比较好! 不是吗?

相频函数工作上较少接触, 个人也没研究学习过, 真还不清楚LS差异缘由
直觉上, 感觉应该不全然tfestimate造成!? 或许是lsim造成的!?

同待高人路过! 或许信号版块有人知道!
若有心得亦请分享下, 让我学习下

点评

赞成: 4.0
赞成: 4
  发表于 2014-3-31 23:01
回复 支持 1 反对 0

使用道具 举报

 楼主| 发表于 2013-6-15 19:21 | 显示全部楼层
ChaChing 发表于 2013-6-15 17:55
LS可能不清楚我是使用繁体的!
原先的txt档下载后, 就是看到许多乱码! 原因我也不清楚
反正好像也没几行 ...

发帖子用附件习惯了,请见谅。

用tfestimate造和lsim得到的幅频函数有很好精度,应该不是lsim造成的,并且我对比过lsim和用simulink得到的数据,两者吻合的很好。

我发现tfestimate处理脉冲响应得到的相频函数在最后一个频率相位总是pi(即-pi),表现为相频函数发生跳变,我用测试的脉冲激励信号同样出现了这一跳变现象,原因暂时还没有找到。
您需要登录后才可以回帖 登录 | 我要加入

本版积分规则

QQ|小黑屋|Archiver|手机版|联系我们|声振论坛

GMT+8, 2024-11-17 15:52 , Processed in 0.055061 second(s), 18 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表