【问题标题】:FIR filter designFIR 滤波器设计
【发布时间】:2015-06-22 16:18:43
【问题描述】:

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

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

   g[n]=0
   for all other n. 

得到的输出过程是:

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

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

【问题讨论】:

标签: matlab filtering


【解决方案1】:

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

b = [2; 0.6];
fvtool(b,1)

要应用此过滤器,请使用 filter。要生成正态分布的噪声,请使用 randn 乘以标准差,这里是 sqrt(1.2)

x = randn(1,100) * sqrt(1.2);
xf = filter(b,1,x);

xf 是滤波后的信号。

【讨论】:

  • 谢谢,但我正在尝试确定函数 x(n) 的自相关,它是 r(n) + d(n) 的结果(这是一个独立的高斯噪声过程)。除了 g(n) 的值和两个方差:sy= 1.2sd=0.2 之外,没有已知值。从数学上我推断出 x(n) 的自相关函数是 Rxx = sy g(m) * g(-m) + sd delta(m)。为此,我想在 Matlab 中使用函数 xcorr 来确定卷积,但我不知道如何在 matlab 中编写 g(m) 和 g(-m)。
  • @Daan Wabeke:好的,这就是你在另一篇文章中想要做的。但我回答了这篇文章的问题,所以很高兴在这里得到一个被接受的答案。然后,下一个问题可以在您要求的其他帖子中解决。
  • 对不起,我是这个网站的新手,您确实回答了我的问题,谢谢。接受的答案是什么意思?
  • 知道了,很抱歉我的困惑。我仍然遇到麻烦,因为我的问题是实现 g(m)。我现在所做的只是使用向量 [2 0.6] 但这似乎不对。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2021-04-17
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-03-05
  • 1970-01-01
相关资源
最近更新 更多