第二章上机作业 2
一、作业题目
设计一维纳滤波器
(1)产生三组观测数据:首先根据 s(n)=a s(n-1)+w(n)产生信号 s(n),将其加
噪(信噪比分别为 20dB,10 dB,6 dB),得到观测数据 x1(n), x2(n), x31(n).
(2)估计 xi(n),i=1,2,3 的 AR 模型参数。假设信号长度为 L,AR 模型阶数为
N,分析实验结果,并讨论改变 L,N 对实验结果的影响。
二、原理
利用 matlab 的 randn 函数产生高斯白噪声 w(n),用来模拟系统噪声。根据
系统差分方程 s(n)=as(n-1)+w(n)产生混有系统噪声的真实信号。式中 a 为方程的
系数。
利用 awgn 函数向真实信号 s(n)加入高斯白噪声得到观测信号。这里的高斯
白噪声用来模拟观测噪声。此函数可以通过设置参数来控制观测信号的信噪比。
根据观测信号,为系统构建 AR 模型。AR 模型的参数通过最小二乘法估计
得到。观测信号的数目越多、AR 模型的阶数越多,AR 模型与真实体统的逼近
程度就越高,不过运算量也越大。
运用最小二乘法估计参数非常方便,参数估计无偏、精度高。最小二乘估计
法可用如下方程组表示:Y=Xφ+a。φ的最小二乘估计为:φ=inv(X’*X)*X’*Y。
三、程序
根据上述原理编写出下面的程序:
clear;
clc;
fs=100;
t=(0:1/fs:2);
n=201;%信号的长度
N=randn(1,n);%产生 1×L 个高斯白噪声
A=0.6;%设差分方程 s(n)=as(n-1)+w(n)的反馈系数 a=A=0.6,是一个稳定系统
S1=0;
S2=0;
S=[];
for i=1:n
S2=A*S1+N(i);
S=[S S2];
S1=S2;
end
x_1=awgn(S,20); %产生信噪比为 20dB 的观测信号 x(1)
x_2=awgn(S,10); %产生信噪比为 10dB 的观测信号 x(2)
x_3=awgn(S,6); %产生信噪比为 6dB 的观测信号 x(3)
subplot(3,1,1);
plot(t,S,'r',t,x_1,'c');
legend('实际值','信噪比为 20dB');
xlabel('t');
ylabel('S/x_1');
title('真实信号 s 和观测信号 x_1');
grid on;
subplot(3,1,2);
plot(t,S,'r',t,x_2,'g');
legend('实际值','信噪比为 10dB');
xlabel('t');
ylabel('S/x_2');
title('真实信号 s 和观测信号 x_2');
grid on;
subplot(3,1,3);
plot(t,S,'r',t,x_3,'b');
legend('实际值','信噪比为 6dB');
xlabel('t');
ylabel('S/x_3');
title('真实信号 s 和观测信号 x_3');
grid on;
%估计 AR 模型的参数
AR_n=40;%构造 40 阶 AR 模型,根据经验,AR 模型的阶数在 L/3 到 L/2 之间比较合适。
Y=x_1';
Y(1:AR_n)=[];
m=n-AR_n;
X=[];
for j=1:m
for h=1:AR_n
X(j,h)=x_1(AR_n+j-h);
end
end
%AR 模型的参数估计值
parameter_1=inv(X'*X)*(X'*Y);
%用 AR 模型生成的信号与原信号的方差
d_1=(Y-X*parameter_1)'*(Y-X*parameter_1)/(n-AR_n);
%根据 x(2)估计 AR 模型的参数
Y=x_2';
Y(1:AR_n)=[];
m=n-AR_n;
X=[];
for j=1:m
for h=1:AR_n
X(j,h)=x_1(AR_n+j-h);
end
end
%AR 模型的参数估计值
parameter_2=inv(X'*X)*(X'*Y);
%用 AR 模型生成的信号与原信号的方差
d_2=(Y-X*parameter_2)'*(Y-X*parameter_2)/(n-AR_n);
%根据 x(3)估计 AR 模型的参数
Y=x_3';
Y(1:AR_n)=[];
m=n-AR_n;
X=[];
for j=1:m
for h=1:AR_n
X(j,h)=x_1(AR_n+j-h);
end
end
%AR 模型的参数估计值
parameter_3=inv(X'*X)*(X'*Y);
d_3=(Y-X*parameter_3)'*(Y-X*parameter_3)/(n-AR_n);三、结果及分析
运行上述程序,得到的一次结果为
通过改变信号的长度 L 和 AR 模型的阶数 AR_n,可以得到由不用长度信号估计出的不
同阶数的 AR 模型的参数。根据理论知识和实验结果可以看出,信号长度越长、AR 模型的
阶数越高,估计误差就越小。