声振论坛

 找回密码
 我要加入

QQ登录

只需一步,快速开始

查看: 4676|回复: 7

[编程技巧] 谁能共享一个由传递函数求脉冲响应函数的matlab程序?

[复制链接]
发表于 2010-2-12 11:32 | 显示全部楼层 |阅读模式

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

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

x
谁有由传递函数求脉冲响应函数的matlab程序啊?能共享一下吗?谢谢啊!

本帖被以下淘专辑推荐:

回复
分享到:

使用道具 举报

发表于 2010-2-12 13:49 | 显示全部楼层
help impulse?
 楼主| 发表于 2010-2-12 15:29 | 显示全部楼层
看了impulse,还是没搞明白,我的传递函数是试验测得的,是一堆离散的复数。
发表于 2010-2-12 20:49 | 显示全部楼层
抱歉! 没看清楚明白
试试先使用frd后, 再使用impulse
 楼主| 发表于 2010-2-13 00:17 | 显示全部楼层
多谢你的回答。
另外,我看有些老师说传递函数做傅立叶逆变换后,就得到脉冲响应函数,我研究逆变换,但是有点问题,因为一个时间序列的FFT是一个对称的,而一般得到的传递函数只有一半(傅立叶变换中舍掉了另一半),我用模拟信号试了一下,如果利用一半的话,根本逆不回去,把谱颠倒后,发现会少一项,也逆不回去,就是少正变换中的第N/2+1项。
先试试您的方法看看。
 楼主| 发表于 2010-2-13 00:41 | 显示全部楼层
老大,貌似不行。
我的模拟数据如下:
fr=[  -0.1607         
  -0.1587 + 0.0697i
  -0.1524 + 0.1402i
  -0.1418 + 0.2126i
  -0.1264 + 0.2879i
  -0.1057 + 0.3672i
  -0.0789 + 0.4521i
  -0.0449 + 0.5444i
  -0.0022 + 0.6465i
   0.0514 + 0.7617i
   0.1193 + 0.8947i
   0.2062 + 1.0523i
   0.3197 + 1.2452i
   0.4724 + 1.4907i
   0.6863 + 1.8194i
   1.0048 + 2.2910i
   1.5254 + 3.0398i
   2.5226 + 4.4439i
   5.1866 + 8.1415i
  34.5115 +48.5339i
  -9.4786 -11.9836i
  -4.5910 - 5.2273i
  -3.1940 - 3.2757i
  -2.5313 - 2.3352i
  -2.1434 - 1.7734i
  -1.8879 - 1.3938i
  -1.7058 - 1.1156i
  -1.5686 - 0.8993i
  -1.4606 - 0.7232i
  -1.3723 - 0.5743i
  -1.2979 - 0.4445i
  -1.2332 - 0.3281i
  -1.1756 - 0.2212i
  -1.1227 - 0.1208i
  -1.0730 - 0.0245i
  -1.0250 + 0.0698i
  -0.9773 + 0.1639i
  -0.9287 + 0.2597i
  -0.8779 + 0.3590i
  -0.8232 + 0.4641i
  -0.7627 + 0.5778i
  -0.6940 + 0.7035i
  -0.6135 + 0.8462i
  -0.5161 + 1.0129i
  -0.3943 + 1.2142i
  -0.2352 + 1.4678i
  -0.0168 + 1.8043i
   0.3044 + 2.2835i
   0.8258 + 3.0398i
   1.8221 + 4.4514i
   4.4835 + 8.1566i
  33.8039 +48.5568i
-10.1926 -11.9527i
  -5.3133 - 5.1879i
  -3.9267 - 3.2273i
  -3.2767 - 2.2771i
  -2.9039 - 1.7047i
  -2.6661 - 1.3136i
  -2.5048 - 1.0225i
  -2.3917 - 0.7918i
  -2.3115 - 0.5992i
  -2.2555 - 0.4315i
  -2.2184 - 0.2798i
  -2.1973 - 0.1377i]

sys=frd(fr,fss,-1);%fss为频率向量fss=[1:1:64]'
在利用impulse时
提示不可以:
>> [y,t] = impulse(sys)
??? Error using ==> ltipack.frddata.utCheckComputability
Not available for FRD models.
发表于 2010-2-13 12:10 | 显示全部楼层

回复 5楼 singtosky 的帖子

个人水平专业有限, 对LZ说的东东, 都已经有些过久没碰, 忘干净了, 现在又懒得翻看资料, 就同待高人路过! sorry
至于6F的资料, 似乎可以试试, 但这过年期间, 有点忙! 有空在试试

[ 本帖最后由 ChaChing 于 2010-2-13 12:13 编辑 ]
发表于 2010-2-13 12:54 | 显示全部楼层

回复 板凳 singtosky 的帖子

感觉lz需要的是函数辨识的问题,而不是已知传递函数求脉冲响应函数的问题。
建议采用最小二乘辨识或者help arx,然后再求解脉冲响应
您需要登录后才可以回帖 登录 | 我要加入

本版积分规则

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

GMT+8, 2024-11-16 18:40 , Processed in 0.057276 second(s), 19 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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