找回密码
 注册
Simdroid-非首页
查看: 74|回复: 4

时域滤波怎么用matlab实现

[复制链接]
发表于 2013-11-27 16:18:41 | 显示全部楼层 |阅读模式 来自 山东济南
现在已知两个条件:
        1 时域信号变量X(1000x2矩阵),第一列为时间,第二列为对应的信号幅值;
        2 滤波器传递函数H(500x2矩阵),第一列为频率,第二列为对应的传递函数值(复数)
想要得到时域新号X经滤波器H处理之后的时域信号Y(1000x2矩阵),第一列为时间,第二列为对应的信号幅值。
滤波器是频域用法比较简单,但是这个过程怎么直接在时域进行呢?
发表于 2013-11-28 10:46:58 | 显示全部楼层 来自 北京
Simdroid开发平台
这种情况,如果不知道传递函数公式,在频域进行滤波更好一些

1、将1的第二列数据进行付氏变换到频域,然后再与2的第二更数据相乘,对结果再进行反付氏变换

     即可得到时域滤波后的数据

2、如果2的数据是付氏变换得到的,可以反付氏变换得到时域滤波器数据,然后与1的第二列数据进行卷积

    也可以得到时域滤波后的数据

不一定对,供参考
回复 不支持

使用道具 举报

 楼主| 发表于 2013-11-28 15:55:58 | 显示全部楼层 来自 山东济南
ljelly 发表于 2013-11-28 10:46
这种情况,如果不知道传递函数公式,在频域进行滤波更好一些

1、将1的第二列数据进行付氏变换到频域,然后 ...

谢谢版主!
1、将数据变换到频域与传递函数相乘,将结果在傅里叶逆变换到时域这个过程已经完成了,现在要做的就是在时域滤波,然后对这两种方法进行对比。
2、我开始的思路跟你是一样的。传递函数的数据是计算出来的,傅里叶逆变换之后的时域序列是复数,并且有些序列的复数虚部比实部还大,这样该如何解释和处理呢?
回复 不支持

使用道具 举报

发表于 2013-11-29 08:22:06 | 显示全部楼层 来自 北京
pxiaoke 发表于 2013-11-28 15:55
谢谢版主!
1、将数据变换到频域与传递函数相乘,将结果在傅里叶逆变换到时域这个过程已经完成了,现在要 ...

1、如果有传递函数,直接通过Z变换离散化,得到滤波器系数,再通过时域滤波函数如freqz处理就得到结果了

2、不用管是否复数,付氏变换后肯定是复数,通过函数再变换到时域就是最后的结果了
回复 不支持

使用道具 举报

 楼主| 发表于 2013-11-29 10:28:17 | 显示全部楼层 来自 山东济南
ljelly 发表于 2013-11-29 08:22
1、如果有传递函数,直接通过Z变换离散化,得到滤波器系数,再通过时域滤波函数如freqz处理就得到结果了
...

1、如果传递函数是解析的,这个过程就好解决了,但是现在的传递函数是频率离散的,该怎么做Z变换离散呢?
2、可能我上一个回复说的不清楚,现在的频率离散传递函数是复数序列,将这个复数序列傅里叶“逆变换到时域”得到的序列仍然是复数序列。
回复 不支持

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

Archiver|小黑屋|联系我们|仿真互动网 ( 京ICP备15048925号-7 )

GMT+8, 2024-4-27 02:28 , Processed in 0.036192 second(s), 11 queries , Gzip On, MemCache On.

Powered by Discuz! X3.5 Licensed

© 2001-2024 Discuz! Team.

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