主题:求助
clc;
clear;
N=1000;
m=1;
n=10;
% for i=1:10
sumSNR=0;
x1=randn(1,N);
v1=rand(1,N);
wn=0.25;
h=fir1(N,wn);
x=filter(h,1,x1);
v=sqrt(var(x))*v1;%保证信噪比为0;
y=x+v;
rx=xcorr(x,N);
for i=m:n;m<N-10+1;n<N+1;
for i=m:n;m<N-10+1;n<N+1;
if j>i;
r(i,j)=rx(j-i+1);
else if j==i;
r(i,j)=1;
if j<i;
r(i,j)=r(j,i)
end
end
end
m=m+10;
n=n+10;
end
m=m+10;
n=n+10;
end %产生相关函数矩阵。其中,对角线为x(i)自身相关,定义为1,分两段求,第一段
[v,d]=eig(r);
O=zeros(N,1);
aver=mean(v);
e=sum(aver)/N;
for k=1:N;
if aver(k)<e
r(:,k)=O;
end
end
%去掉小于平均值的列
xx=y*r; %重构原信号
sumSNR=10*log(var(xx));
sumSNR
这是我编的求K-L变换的代码,但是运行不了,不知道哪位高手能帮忙下啊
clear;
N=1000;
m=1;
n=10;
% for i=1:10
sumSNR=0;
x1=randn(1,N);
v1=rand(1,N);
wn=0.25;
h=fir1(N,wn);
x=filter(h,1,x1);
v=sqrt(var(x))*v1;%保证信噪比为0;
y=x+v;
rx=xcorr(x,N);
for i=m:n;m<N-10+1;n<N+1;
for i=m:n;m<N-10+1;n<N+1;
if j>i;
r(i,j)=rx(j-i+1);
else if j==i;
r(i,j)=1;
if j<i;
r(i,j)=r(j,i)
end
end
end
m=m+10;
n=n+10;
end
m=m+10;
n=n+10;
end %产生相关函数矩阵。其中,对角线为x(i)自身相关,定义为1,分两段求,第一段
[v,d]=eig(r);
O=zeros(N,1);
aver=mean(v);
e=sum(aver)/N;
for k=1:N;
if aver(k)<e
r(:,k)=O;
end
end
%去掉小于平均值的列
xx=y*r; %重构原信号
sumSNR=10*log(var(xx));
sumSNR
这是我编的求K-L变换的代码,但是运行不了,不知道哪位高手能帮忙下啊