声振论坛

 找回密码
 我要加入

QQ登录

只需一步,快速开始

查看: 1878|回复: 5

[编程技巧] 如何消除频响函数的波浪形趋势!急求!

[复制链接]
发表于 2017-10-19 21:28 | 显示全部楼层 |阅读模式

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

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

x
第一次在论坛上提问,谢谢大家了!

我想要求得的系统频响函数是奇数点的值相等,偶数点的值都为0,如下图。

理想的频响函数

理想的频响函数


但目前我求出的频响函数(下图)有一个波浪形的趋势。

我求得的频响函数

我求得的频响函数


我的输入信号和输出信号如下

输入信号

输入信号

输出信号

输出信号


我尝试过调整输入信号和输出信号,但结果基本都是类似的错误(有波浪形的趋势)。在这个系统中,我的输出信号近似于一个周期性的脉冲方波,输入信号近似于一个零点附近的单个脉冲方波。

请问大家这里应该如何纠正? 应该使用detrend函数吗?怎么使用?谢谢!




回复
分享到:

使用道具 举报

 楼主| 发表于 2017-10-20 23:24 | 显示全部楼层
急求!!!!!!!!!!!!!!!!!!!!!!!
发表于 2017-10-23 08:57 | 显示全部楼层
温柔的小西瓜 发表于 2017-10-20 23:24
急求!!!!!!!!!!!!!!!!!!!!!!!

有程序吗?贴出来看看
发表于 2017-10-23 14:36 | 显示全部楼层
  1. matlab可以使用detrend函数去除时间序列x中的均值或线性趋势,这在FFT处理中尤其常用。

  2. 格式:

  3. y = detrend(x) % 消除时间序列中的线性趋势项
  4. y = detrend(x,'constant') % 消除时间序列中的均值
  5. y = detrend(x,'linear',bp) % 分段消除时间序列中的线性趋势项,bp为分段点向量



  6. sig = [0 1 -2 1 0 1 -2 1 0]; % 无线性趋势的信号

  7. trend = [0 1 2 3 4 3 2 1 0]; % 有两段线性的趋势
  8. x = sig+trend; % 将上面趋势叠加到信号上

  9. y = detrend(x,'linear',5) % 根据指定的分段点去除两段线性趋势
复制代码
您需要登录后才可以回帖 登录 | 我要加入

本版积分规则

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

GMT+8, 2024-11-17 07:02 , Processed in 0.074519 second(s), 25 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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