【问题标题】:Matlab : Convolution and deconvolution results weirdMatlab:卷积和反卷积结果很奇怪
【发布时间】:2018-04-07 06:40:19
【问题描述】:

数据x 输入到自回归模型 (AR) 模型。 AR 模型的输出在 SNR = 30 dB 时被加性高斯白噪声破坏。观察结果用noisy_y 表示。

让 AR 模型有接近的估计 h_hat(这些是从最小二乘估计中获得的)。我想看看从反卷积获得的输入与h_hat 的接近程度以及测量值与已知的x 的接近程度。

  • 我的困惑是使用哪个变量进行反卷积 -- 清除 ynoisy y

反卷积后,我应该得到x_hat。我不确定执行反卷积的正确方法是在添加噪声之前使用noisy_y 还是使用y。我使用了以下代码。

  • 谁能帮忙看看绘制xx_hat的正确方法。

下面是xx_hat 的对比图。可以看出,这些不匹配。我的理解错在哪里?请帮忙。

代码是:

clear all
    N = 200; %number of data points
    a1=0.1650;
    b1=-0.850;
    h = [1 a1 b1]; %true coefficients

    x = rand(1,N);
    %%AR model
    y = filter(1,h,x); %transmitted signal through AR channel
    noisy_y = awgn(y,30,'measured');
    hat_h= [1 0.133 0.653];
    x_hat = filter(hat_h,1,noisy_y); %deconvolution
    plot(1:50,x(1:50),'b');
    hold on;
    plot(1:50,x_hat(1:50),'-.rd');

【问题讨论】:

    标签: matlab signal-processing convolution estimation deconvolution


    【解决方案1】:

    第一个问题是您的 AR 模型的系数 h 对应于一个不稳定系统,因为它的一个极点位于单位圆之外:

    >> abs(roots(h))
    ans =
    
       1.00814
       0.84314
    

    在给定不同的输入序列的情况下,参数估计技术很可能无法收敛。事实上,查看声明的hat_h = [1 0.133 0.653] 很明显,参数估计在实际系数附近没有收敛。在您的具体情况下,您没有提供说明如何获得hat_h 的代码(除了指定它是“从最小二乘估计中获得的”),因此无法进一步评论您的估计出了什么问题。

    也就是说,standard formulation of Least Mean Squares (LMS) filters 是为 MA 模型提供的。 AR参数估计的常用方法是解决Yule-Walker equations

    hat_h = aryule(noisy_y - mean(noisy_y), length(h)-1);
    

    如果我们将这种估计方法与由以下定义的稳定系统一起使用:

    h = [1 -a1 -b1];
    
    x = rand(1,N);
    %%AR model
    y = filter(1,h,x); %transmitted signal through AR channel
    noisy_y = awgn(y,30,'measured');
    hat_h = aryule(noisy_y - mean(noisy_y), length(h)-1);
    x_hat = filter(hat_h,1,noisy_y); %deconvolution
    

    xx_hat 的情节如下所示:

    【讨论】:

    • 感谢您的回答。我有4个疑问,你能解释一下吗? (1)我没有意识到不稳定的问题。如果h = [1, 0.195,-0.95]; 然后采取abs(root(h)) = 1.0770, 0.8820 这也是不稳定的吗?如果第一个值,1.0770 > 1,那么我们说根在单位圆外吗?(2)误差计算:使用h_hatx_hat我将模拟AR模型生成y_hat。由于估计值是使用noisy_y 获得的,因此应在yy_hat 之间计算均方误差,还是应该在noisy_yy_hat 之间计算?
    • (3) 我是否应该将数据序列细分为训练和测试来估计系统并计算y_hat? (4) 当输入和系统参数未知时,我没有输入的导频符号形式的期望信号/训练序列。在这种情况下,估计和y_hat 计算是否会使用整个序列来完成(如本题所示)?
    • (1) h=[1,0.195,-0.95] 也不稳定。如果您绘制一个长的x 序列,这一点尤其明显。如果abs(roots(h)) 中的任何值大于 1,则根在单位圆之外。 (2) 作为一个不同的问题可能更好,您可以通过比较准确地揭示您想要达到的目标,但您很可能应该比较类似的东西(例如yy_hatnoisy_ynoisy_y_hat )
    • (3)y_hat的前几个元素可能不会那么准确,直到系统参数有合理的估计;因此,初始训练阶段通常是有意义的。 (4) 盲估计可能需要比导频辅助更多的样本来收敛,但序列的确切长度将取决于所使用的确切估计方法和所需的性能。
    • 不,稳定性条件只要求传递函数的极点位于单位圆内。移动平均模型没有极点,只有零点(因此它们总是稳定的)。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-08-18
    • 2016-11-11
    • 1970-01-01
    • 2012-11-06
    • 1970-01-01
    相关资源
    最近更新 更多