完整的维纳滤波器 Matlab 源程序
clear;clc;
%输入信号
A=1; %信号的幅值
f=1000; %信号的频率
fs=10^5; %采样频率
t=(0:999); %采样点
Mlag=100; %相关函数长度变量
x=A*cos(2*pi*f*t/fs); %输入正弦波信号
xmean=mean(x); %正弦波信号均值
xvar=var(x,1); %正弦波信号方差
xn=awgn(x,5); %给正弦波信号加入信噪比为 20dB 的高斯白噪
声
figure(1)
plot(t,xn) %绘制输入信号图像
title('输入信号图像')
xlabel('x 轴单位:t/s','color','b')
ylabel('y 轴单位:f/HZ','color','b')
xnmean=mean(xn) %计算输入信号均值
xnms=mean(xn.^2) %计算输入信号均方值
xnvar=var(xn,1) %计算输入信号方差
Rxn=xcorr(xn,Mlag,'biased'); %计算输入信号自相关函数
figure(2)
subplot(221)