Matlab FIR滤波器设计

Matlab FIR滤波器设计,matlab,filtering,Matlab,Filtering,考虑方差σ2y=1.2的高斯白噪声过程y[n],该过程通过具有脉冲响应的长度为2的有限脉冲响应滤波器g[n] g[0]=2, g[1]=0.6, 及 产生的输出过程是: r[n] = g[n]*y[n] = ∑∞k=−∞ ( g[k] y[n−k] ) 如何在Matlab中设计FIR滤波器?这看起来比实际情况更复杂。对于给定的g,在滤波器术语中是红外滤波器的ab,很容易“设计”滤波器b已经是定义整个过滤器的过滤器系数。以下代码在过滤器可视化工具中打开过滤器: b = [2; 0.6]

考虑方差σ2y=1.2的高斯白噪声过程y[n],该过程通过具有脉冲响应的长度为2的有限脉冲响应滤波器g[n]

 g[0]=2, g[1]=0.6,

产生的输出过程是:

   r[n] = g[n]*y[n] = ∑∞k=−∞ ( g[k] y[n−k] )

如何在Matlab中设计FIR滤波器?

这看起来比实际情况更复杂。对于给定的
g
,在滤波器术语中是红外滤波器的a
b
,很容易“设计”滤波器
b
已经是定义整个过滤器的过滤器系数。以下代码在过滤器可视化工具中打开过滤器:

b = [2; 0.6];
fvtool(b,1)
要应用此筛选器,请使用
筛选器
。要产生正态分布的噪声,请使用标准偏差乘以
randn
,标准偏差为
sqrt(1.2)


xf
是经过过滤的信号。

sniff…sniff sniff。。。。闻起来像是家庭作业。我建议你先看看Mathworks已经提供的关于这个主题的信息:谢谢,但我试图确定函数x(n)的自相关性,它是r(n)+d(n)的结果(这是一个独立的高斯噪声过程)。除了g(n)值和两个方差:sy=1.2和sd=0.2外,没有已知值。从数学上我推导出x(n)的自相关函数是Rxx=syg(m)*g(-m)+sdδ(m)。为此,我想使用Matlab中的函数xcorr来确定卷积,但我不知道如何在Matlab中编写g(m)和g(-m)。@Daan Wabeke:好的,这就是你在另一篇文章中想做的。但是我回答了这篇文章的问题,所以在这里得到一个被接受的答案会很好。然后,下一个问题可以在你要求的其他帖子中解决。对不起,我是这个网站的新手,你回答了我的问题,谢谢。你所说的被接受的答案是什么意思?明白了,很抱歉我的困惑。但是我仍然有困难,因为我的问题是实现g(m)。我现在所做的只是简单地使用一个向量[20.6],但这似乎并不正确。
b = [2; 0.6];
fvtool(b,1)
x = randn(1,100) * sqrt(1.2);
xf = filter(b,1,x);