wiener.m

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

M
18
字号
%Wiener(x,s,N)维纳滤波器,其中x是观测信号,s是期望信号,h是滤波器系数,N是滤波器长度;
function h=Wiener(x,s,N);
if nargin<3
    N=length(x);
end
L=length(x);
Rxs=xcorr(s,x,'biased');%使用有偏估计;
Rxs=Rxs(L:L+N-1);%取Rxs的0~N-1个元素;
Rxs=conj(Rxs');
Rxx=xcorr(x,x,'biased');%使用有偏估计;
Rxx=Rxx(L:L+N-1);%取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\Rxs;

⌨️ 快捷键说明

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