eros(N,N);% R->信号X(n)的自相关矩阵,维数为(N-1)*(N-1)Р R(1,:)=r(1:N);Р for row=2:N;Р R(row,1)=r(row);Р R(row,2:N)=R(row-1,1:N-1);Р end;Р P=zeros(1,N);% P->X(n)与S(n)的互相关Р X_temp=X;Р for k=0:N-1;Р X_temp(1:M-k)=X(1+k:M);Р X_temp(M-k+1:M)=0;Р P(k+1)=1/M*X_temp*S';Р end;Р Wo=zeros(1,N);Р Wo=inv(R)*P';Р Wo=Wo';Р% 由Wiener滤波器进行滤波处理,得到Y(n) Р Y_temp=conv(Wo,X); Р Y=Y_temp(1:M);Р % 计算代价函数JР E=zeros(1,M);Р E=S-Y;Р P=mean(E.^2); % P->代价函数;Р disp('P=');Р disp(P)Р disp('SNR=');Р disp(SNR); Р % 一步线性预测Р N_P=N;Р A_P=zeros(N_P);Р r_p=zeros(1,N_P);Р r_p=r(2:N+1);Р A_P=A_P';Р A_P=inv(R)*(r_p')Р Y_P_temp=conv(A_P,X);Р Y_P=zeros(1,M);Р Y_P(3:M)=Y_P_temp(1:M-2);Р % 计算J_PР E_P=zeros(1,M);Р E_P=S-Y_P;Р J_P=mean(E_P.^2);Р disp('J_P=');Р disp(J_P);Р % figure(2)Р % stem(Y_P);Р% --------------------------------------------------