宽带频谱感知求助~Matlab

小学生

现在正在仿一篇宽带频谱感知的论文,仿真结果一直对不上。文章是"Cyclic Feature Detection With Sub-Nyquist Sampling for Wideband Spectrum Sensing",作者是Zhi Tian。

希望有朋友能帮忙指点一二,定重谢!!!

本人QQ619992198,请大家帮帮忙,谢谢!

这是我的代码

x=bPSK(10^7,375*10^6,10^9,64,1);

L=200;

N=length(x)/L;

%%

Rx=zeros(N,N);

for l=1:1:L

Rx=x((l-1)*N+1:l*N)'*x((l-1)*N+1:l*N)+Rx;

end

Rx=Rx/L;

R=zeros(N,N);

for n=1:1:N

R(1:N-n+1,n)=diag(Rx,n-1);

end

%%

F=zeros(N,N);

for v=0:1:N-1

for b=0:1:N-1

F(v+1,b+1)=exp(-j*2*pi*v*b/N);

end

end

Rxc=zeros(N,N);

H=zeros(N^2,N*(N+1)/2);

B=generate_B(N);

for v=0:1:N-1

Dv=zeros(N,N);

Dv(v+1,v+1)=1;

for a=0:1:N-1

for n=0:1:N-1

Gv(a+1,n+1)=exp(-j*2*pi*a*(n+v/2)/N)/N;

end

end

Rxc=Gv*R*Dv+Rxc;

H=kron(Dv',Gv)*B+H;

end

Sxc=Rxc*F;

sxc=reshape(Sxc,N^2,1);

m=2:2:30;

for i=1:1:length(m)

M=m(i);

A=randn(M,N);

A=A/sqrt(M);

for t=1:1:100;

z=zeros(M,L);

for l=1:1:L

z(:,l)=A*x((l-1)*N+1:l*N)';

end

Rz=zeros(M,M);

for l=1:1:L

Rz=z(:,l)*z(:,l)'+Rz;

end

Rz=Rz/L;

Qm=generate_Q(M);

rz=Qm*reshape(Rz,M^2,1);

%%

Pn=generate_P(N);

fai=Qm*kron(A,A)*Pn;

In=eye(N);

W=kron(inv(F'),In);

tau=fai*pinv(H)*W;

%%

cvx_begin quiet

variable sx(N^2) complex

minimize square_pos(norm(rz-tau*sx,2))+1.2*norm(sx,1)

cvx_end

MSE(t,i)=norm(sx-sxc,2)^2/norm(sxc,2)^2;

end

end

mse=mean(MSE);

小学生
哪位能做,定重谢!!