wiener2.m

来自「现代信号处理里的一些内容」· M 代码 · 共 18 行

M
18
字号
%Wiener(s,sigma,N)维纳滤波器,s是期望信号,sigma是白噪声方差,h是滤波器系数,N是滤波器长度;
function h=Wiener2(s,sigma,N);
if nargin<3
    N=length(s);
end
L=length(s);
Rss=xcorr(s,s,'biased');%使用有偏估计;
Rss=Rss(L:L+N-1);%取Rss的0~N-1个元素;
Rss=conj(Rss');
Rxx=[Rss(1)+sigma,Rss(2:end)'];%取Rxx的0~N-1个元素;
Rxx1=Rxx;
%size(Rxx)
for k=1:N-1
    Rxx2=Rxx1([k+1:-1:2,1:N-k]);
    Rxx=[Rxx;Rxx2];%构造自相关矩阵;
end
h=Rxx\Rss;
h=h';

⌨️ 快捷键说明

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