时域滤波怎么用matlab实现
现在已知两个条件:1 时域信号变量X(1000x2矩阵),第一列为时间,第二列为对应的信号幅值;
2 滤波器传递函数H(500x2矩阵),第一列为频率,第二列为对应的传递函数值(复数)
想要得到时域新号X经滤波器H处理之后的时域信号Y(1000x2矩阵),第一列为时间,第二列为对应的信号幅值。
滤波器是频域用法比较简单,但是这个过程怎么直接在时域进行呢? 自己先顶一下 可以根据你的传递函数H(jw)先计算出有限长度的单位脉冲响应h(n),然后用你的信号X和h(n)求卷积即可。简而言之,类似于FIR滤波器计算出滤波器系数h(n)后的操作。。。 江树空 发表于 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 12:04 static/image/common/back.gif
谢谢!现在已经解决了。我的思路也是这样的,但是刚开始在求h(n)的时候遇到了困难,求得的h(n)是复数序 ...
将H(jw)扩展成偶对称序列也可以 江树空 发表于 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: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 09:13 static/image/common/back.gif
用conv的话直接将后m-1个点扔掉即可,matlab自带的filter函数实际也是这样处理的。依据就是卷积的定义,按 ...
但是结果怎么感觉后面的点更准确呢,前面的震荡 随心就动 发表于 2013-12-3 10:37 static/image/common/back.gif
但是结果怎么感觉后面的点更准确呢,前面的震荡
既然算出的是h(n),想必是用的FIR滤波器咯,前面几个点看起来震荡,是因为FIR滤波器的线性相位优点所致。你可以看一下前面几个点的长度恰好是(N-1)/2,而这是因为线性相位约束条件alpha=(N-1)/2。 江树空 发表于 2013-12-3 11:34 static/image/common/back.gif
既然算出的是h(n),想必是用的FIR滤波器咯,前面几个点看起来震荡,是因为FIR滤波器的线性相位优点所致。 ...
H中的相位数据不是线性的 随心就动 发表于 2013-12-3 14:00 static/image/common/back.gif
H中的相位数据不是线性的
呃……我忘了你的是已知系统函数,不是计算的FIR滤波器系数,糗大了。{:{17}:} 江树空 发表于 2013-12-4 09:02 static/image/common/back.gif
呃……我忘了你的是已知系统函数,不是计算的FIR滤波器系数,糗大了。
没事的,共同探讨嘛
页:
[1]