【问题标题】:xcorr function with impulse response具有脉冲响应的 xcorr 函数
【发布时间】:2015-09-09 01:29:29
【问题描述】:

我正在尝试在 Matlab 中设计一个维纳滤波器来解决反卷积问题,但我遇到了很多问题。我有一个方差为 1.2 的高斯白噪声过程和一个长度为 2 的脉冲响应。它的值是 g(0) = 5 和 g(1) = 4。稍后在此过程中,我尝试确定 Rxx(m)。为此,我需要计算 g(m)*g(-m)(卷积),并建议在 Matlab 中使用 xcorr 函数,但我的结果没有意义。任何人都可以帮助我使用这个 xcorr 函数并就如何使用这个脉冲响应提供建议吗?我曾尝试使用 g 的傅立叶变换,但这没有任何帮助。

【问题讨论】:

  • Rxx(0) 在中间 (ceil(M/2))
  • 请提供您已经尝试过的代码。任何我们需要有关上下文的更多详细信息。与输入信号一样,脉冲响应的用途以及计算 conv(m,-m) 的位置/原因。
  • 我没有输入信号,只是它是一个方差为 1.2 的白噪声过程,它通过 FIR 滤波器 g(n)。知道这是一个 FIR 滤波器,差分方程变为 r(n) = sum g(k) y(n-k) 。但是信号 r(n) 受到方差为 0.2 的噪声过程 d(n) 的污染。为此,我有 x(n) = r(n) + d(n)。
  • 这个信号是我想用维纳滤波器处理的,以便保留 y(n) 的近似值。为了计算这些,我需要 x(n) 的自相关,这是 Rxx = 1.2 g(m) * g(-m) + 0.2 d(m)。现在我还没有太多代码,因为这是我挣扎的地方:我应该以什么方式实现 g(m) 和 g(-m) 并执行卷积。乘以傅里叶变换似乎不起作用,有人建议我使用 xcorr 函数,但我不明白这究竟是如何工作的,Matlab 的解释也没有多大帮助。
  • 我要补充一点,我对 matlab 没有经验

标签: matlab filtering convolution


【解决方案1】:

以下代码仅实现了我在描述中看到的部分内容。它生成噪声过程并执行第一部分中描述的操作。自相关不是用滤波器系数计算的,而是用实际信号计算的。

% generate noise process y
y = randn(1,N) * sqrt(1.2);

% filter y with the fir-filter g
g = [2, 0.6];
r = filter(g,1,y);

% generate noise process d
d = randn(1,N) * sqrt(0.2);

% x is the sum of r and d
x = r + d; 

% autocorrelation of x
[Rxx,lagRxx] = xcorr(x);

% plot autocorrelation
figure; grid on;
plot(lagRxx,Rxx);
title('Biased Autocorrelation of Signal x');
xlabel('Lag');

% cross correlation between x and y
[Rxy,lagRxy] = xcorr(x,y);

% plot crosscorrelation
figure; grid on;
plot(lagRxy,Rxy);
title('Biased Crosscorrelation of Signal x and y');
xlabel('Lag');

【讨论】:

  • 是的,谢谢,我完全错误地使用了 xcorr 函数。我的最后一个问题是,在确定 Rxx 之后,我想确定 Wiener 滤波器,为此我需要 Ryx。现在,根据前面的等式,我确定 Rxy = g(m) * Ryy = sy g(m)。现在 _Ryx 应该是 g(-m) * Ryy 对吧?我尝试使用 Ryy = xcorr(y) 然后使用 conv() 函数,但我的结果没有意义。
  • @Dann Wabeke:我编辑了代码来计算互相关。
  • 但是如果我想换一种方式,不使用 r(n) 和 y(n) 的随机信号,我可以通过像我所做的那样在数学上推导公式来规避使用未知信号。所以我有: Rxx = sy g(m)*g(-m) + sd delta(m) Rxy = Rry = g(m)*Ryy = sy g(m) Ryx = sy g(-m) 在没有 y 和 r 的情况下计算这些是我的问题。
猜你喜欢
  • 1970-01-01
  • 2012-05-15
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-06-06
  • 1970-01-01
相关资源
最近更新 更多