clear
clc
SNR=5;%信噪比
NN=50000;%迭代次数
SIR=-30;
Pr=0.001;%
u1=0.08;%步长因子
Wg=256; %滤波器长度
P1=10;
P2=10;
runs=2;
for N=1:runs
N
v=randn(NN,1);%设置输入
xk=filter(1,[1 -0.8],v);%经滤波后的输入
W=rand(Wg,1)-0.5; %设置范围-0.5—0.5
W=W/sqrt(sum(W.^2));%滤波器系数
y=filter(W,1,xk);%%net hope
y=awgn(y,30);%加高斯白噪声
%%%srong interference signal BG
% % % % w=randsrc(NN,1,[0 1;1-Pr Pr]); %%一
% % % % n=bsigma*sqrt(1000)*randn(NN,1);
% % % % BG=w.*n;
w=randsrc(NN,1,[0 1;1-Pr Pr]);%产生NN*1的0,1向量
sigma=sqrt(1/Pr*10^(-SIR/10));
n=sigma*randn(NN,1);
BG=w.*n;%%%BG的功率为Pr*sigma^2
noise=sqrt(0.001)*randn(NN,1);
dnoise1=y+BG; %带有非高斯噪声的输出
dnoise2=y+noise;
W11=zeros(Wg,1);W12=zeros(Wg,1);
for k=285:NN %大于滤波器的长度
% X=[xk(k:-1:k-Wg+1)];%%%%%%%%重用数的确定
% for p=2:P1
% X=[X xk(k-p+1:-1:k-Wg-p+2)];
% end
% e1=dnoise(k:-1:k-P1+1)-X'*W1;
% xsk=X*sign(e1);
% W1=W1+u1*xsk/sqrt(xsk'*xsk);
% MISA1(k,N)=sum((W1-W).^2)/sum(W.^2);
X=[xk(k:-1:k-Wg+1)];%%%%%%%%重用数的确定 APA
for p=2:P1
X=[X xk(k-p+1:-1:k-Wg-p+2)];
end
e11=dnoise1(k:-1:k-P1+1)-X'*W11;
e12=dnoise2(k:-1:k-P1+1)-X'*W12;
W11=W11+u1*X*inv(X'*X)*e11;
W12=W12+u1*X*inv(X'*X)*e12;
MISA11(k,N)=sum((W11-W).^2)/sum(W.^2);
MISA12(k,N)=sum((W12-W).^2)/sum(W.^2);
end
end
MISA11=sum(MISA11,2)/runs;MISA11=20*log10(MISA11);
MISA12=sum(MISA12,2)/runs;MISA12=20*log10(MISA12);
figure
plot(1:NN,MISA11,'r');
hold on; plot(1:NN,MISA12,'b');
legend('脉冲噪声','非脉冲噪声');
%legend('P=1','2')
%t2 = cputime;
%exetime = t2 - t1
评论3