📄 work2wiener4.m
字号:
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 + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -