work2wiener4.m

来自「卡尔曼滤波器和维纳滤波器的实现。还有相信的WORD文档的步骤分析。是课程考试内容」· M 代码 · 共 34 行

M
34
字号
clear;clc;
%根据AR(4)模型由白噪声产生随机信号
n=1:100;
W=randn(1,100);
plot(n,W);
B=[1];
A=[1,-1.352,1.338,-0.662,0.240];
X=filter(B,A,W);

%产生方差为4的高斯噪声
V=randn(1,100); 
V=V/std(V);
V=V-mean(V); 
a=0; 
b=sqrt(4); 
V=a+b*V; 
%V=randn(1,100);
Y=X+V;%产生观测信号
%wiener filter的生成
maxlag=100;
[rx,lags]=xcorr(Y,maxlag,'biased');%观测信号的自相关函数
rx1=toeplitz(rx(101:end));%对称化自相关函数矩阵使之成为方阵,filter的阶数为101阶
rx2=xcorr(X,Y,maxlag,'biased');%观测信号与期望信号的互相关函数
rx2=rx2(101:end);
h=inv(rx1)*rx2';%Wiener-Horf 方程
Y0=filter(h,1,Y);%加噪信号通过滤波器后的输出


 
%利用Wiener滤波器通过测量信号估计X的波形

plot(n,X,'r-',n,Y0,'b--');
xlabel('采样点'), ylabel('输出')
title('期望信号波形和Wiener滤波器估计信号波形(v(n)=4)')

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?