logo资料库

matlab实现维纳滤波器.doc

第1页 / 共5页
第2页 / 共5页
第3页 / 共5页
第4页 / 共5页
第5页 / 共5页
资料共5页,全文预览结束
第二章上机作业 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 模型的 阶数越高,估计误差就越小。
分享到:
收藏