随心就动 发表于 2013-11-27 17:29

时域滤波怎么用matlab实现

现在已知两个条件:
      1 时域信号变量X(1000x2矩阵),第一列为时间,第二列为对应的信号幅值;
      2 滤波器传递函数H(500x2矩阵),第一列为频率,第二列为对应的传递函数值(复数)
想要得到时域新号X经滤波器H处理之后的时域信号Y(1000x2矩阵),第一列为时间,第二列为对应的信号幅值。
滤波器是频域用法比较简单,但是这个过程怎么直接在时域进行呢?

随心就动 发表于 2013-11-30 09:27

自己先顶一下

江树空 发表于 2013-12-2 09:18

可以根据你的传递函数H(jw)先计算出有限长度的单位脉冲响应h(n),然后用你的信号X和h(n)求卷积即可。简而言之,类似于FIR滤波器计算出滤波器系数h(n)后的操作。。。

随心就动 发表于 2013-12-2 12:04

江树空 发表于 2013-12-2 09:18 http://forum.chinavib.com/static/image/common/back.gif
可以根据你的传递函数H(jw)先计算出有限长度的单位脉冲响应h(n),然后用你的信号X和h(n)求卷积即可。简而言 ...

谢谢!现在已经解决了。我的思路也是这样的,但是刚开始在求h(n)的时候遇到了困难,求得的h(n)是复数序列,并且有的复数虚部比实部还大,后来我将H设计成共轭对称这个问题就解决了。

江树空 发表于 2013-12-2 13:56

随心就动 发表于 2013-12-2 12:04 static/image/common/back.gif
谢谢!现在已经解决了。我的思路也是这样的,但是刚开始在求h(n)的时候遇到了困难,求得的h(n)是复数序 ...

将H(jw)扩展成偶对称序列也可以

随心就动 发表于 2013-12-3 09:10

江树空 发表于 2013-12-2 09:18 static/image/common/back.gif
可以根据你的传递函数H(jw)先计算出有限长度的单位脉冲响应h(n),然后用你的信号X和h(n)求卷积即可。简而言 ...

由X和h(n)求响应,我用的是filter,结果Y长度和X相同,但是用conv,结果Y的长度是n+m-1,哪一个更准确呢?filter将结果截断,依据是什么呢

江树空 发表于 2013-12-3 09:13

本帖最后由 江树空 于 2013-12-3 09:20 编辑

随心就动 发表于 2013-12-3 09:10 static/image/common/back.gif
由X和h(n)求响应,我用的是filter,结果Y长度和X相同,但是用conv,结果Y的长度是n+m-1,哪一个更准确呢? ...
用conv的话直接将后m-1个点扔掉即可,matlab自带的filter函数实际也是这样处理的。依据就是卷积的定义,按定义只计算到前n个点即可。

随心就动 发表于 2013-12-3 10:37

江树空 发表于 2013-12-3 09:13 static/image/common/back.gif
用conv的话直接将后m-1个点扔掉即可,matlab自带的filter函数实际也是这样处理的。依据就是卷积的定义,按 ...

但是结果怎么感觉后面的点更准确呢,前面的震荡

江树空 发表于 2013-12-3 11:34

随心就动 发表于 2013-12-3 10:37 static/image/common/back.gif
但是结果怎么感觉后面的点更准确呢,前面的震荡
既然算出的是h(n),想必是用的FIR滤波器咯,前面几个点看起来震荡,是因为FIR滤波器的线性相位优点所致。你可以看一下前面几个点的长度恰好是(N-1)/2,而这是因为线性相位约束条件alpha=(N-1)/2。

随心就动 发表于 2013-12-3 14:00

江树空 发表于 2013-12-3 11:34 static/image/common/back.gif
既然算出的是h(n),想必是用的FIR滤波器咯,前面几个点看起来震荡,是因为FIR滤波器的线性相位优点所致。 ...

H中的相位数据不是线性的

江树空 发表于 2013-12-4 09:02

随心就动 发表于 2013-12-3 14:00 static/image/common/back.gif
H中的相位数据不是线性的

呃……我忘了你的是已知系统函数,不是计算的FIR滤波器系数,糗大了。{:{17}:}

随心就动 发表于 2013-12-5 09:38

江树空 发表于 2013-12-4 09:02 static/image/common/back.gif
呃……我忘了你的是已知系统函数,不是计算的FIR滤波器系数,糗大了。

没事的,共同探讨嘛
页: [1]
查看完整版本: 时域滤波怎么用matlab实现