📄 weina.m
字号:
%===================================================================
%维纳滤波实验 ――噪声语音信号的恢复
%四院八队-文特-200404049009
%===================================================================
%计算Wiener-Hof方程的最佳滤波器系数H_opt
% Z为观测数据
% s为原始数据
% M为Z,s的长度
% N为H_opt的长度
%*******************************************************************
clear;clc;
load chirp;
whos ; % 显示变量y .F s : 向量y :表示创建的信号;标量Fs:表示以H z为单位的频率。
s=y;
M=length(s);
N=200; %统计输入信号长度
n=randn(M,1)/10; %产生对应的白噪声
Z=s+n;
rz=xcorr(Z,M-1,'unbiased'); %计算序列的自相关函数
%原始数据的自相关估计
%rs=xcorr(s,Z);
rs=xcorr(s,M-1,'unbiased');
%求Rz矩阵
Rz=zeros(M,N);
for k=1:N-1
Rz(:,k+1)=rz(M-k:M+M-1-k);
end
%用广义逆的方法解上面的方程
H_opt=pinv(Rz)*rs(M:2*M-1);
S=conv(H_opt,Z');
%sound(S);
%wavwrite(S,'c:\估计信号S.wav');
%*********************************************************************
%显示部分
%*******************************************************************
figure
Subplot(4,1,1);
plot(s),title('输入信号s');
Subplot(4,1,2);
plot(n),title('白噪声n');
Subplot(4,1,3);
plot(Z),title('观测信号Z');
Subplot(4,1,4);
plot(S),title('输出信号S');
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -