⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 weina.m

📁 维纳滤波的MATLAB实现
💻 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 + -