主题: [MATLAB毕业设计] 这个错在哪啊???
查看单个帖子
旧 2009-06-04, 21:10   #1
sogno
初级会员
 
注册日期: 2009-03-03
年龄: 39
帖子: 2
声望力: 0
sogno 正向着好的方向发展
默认 这个错在哪啊???

小弟要完成毕业论文,可这个东西是在是不会
哪位高手能帮忙看看这个程序到底有些什么错误啊?
我是输几条命令就报错,前面的还能凑合着改掉,现在干脆卡住了……麻烦各位了~小弟在此谢过~

%File_C9:TD_Phy.m
%本程序仿真单用户
%TD_SCDMA的调制解调过程,使用QSPK调制,扩频因子Q=4,使用第3号码分信道,第9号扰码
clear;
clc;
format compact;
%可调变量
SNR=15;
ovsf=[+j-j+j-j];
scram(1:16)=[j,-1,j,1,j,-1,-j,-1,j,-1,-j,-1,-j,1,-j,-1];
Len_PN=length(ovsf);
Len_Data=16;
Len_Chip=Len_PN*Len_Data;
Fc=1.28e+6;
T_Chip=1.0e-6/1.28;
%信源序列
Signal=randint(1,Len_Data);
qpsk=zeros(1,Len_Data/2);
for i=1:Len_Data/2;
if Signal(2*i-1)<0.5 && Signal(2*i)<0.5
qpsk(i)=j;
elseif Signal(2*i-1)<0.5 && Signal(2*i)>0.5
qpsk(i)=1;
elseif Signal(2*i-1)>0.5 && Signal(2*i)<0.5
qpsk(i)=-1;
else
qpsk(i)=-j;
end
end

SigSpr=kron(qpsk,ovsf);
%加扰码
N=length(SigSpr)/length(scram);
for i=1:N-1;
scram(16*i+1:16*i+16)=scram(1:16);
end
SigSprScrab=SigSpr.*scram
到这报错??? Error using ==> times
Matrix dimensions must agree.之后我就再没往下做)

%figure(1)
%bubplot(211),stem(real(SigSprScrab)),grid;subplot(212),stem(imag(SigSprScrab)),grid
Nch=length(SigSprScrab);
%%经过脉冲成型滤波器
Delay=8;
R=0.22;
Fs=4*Fc
I_TrSig=rcosflt(real(SigSprScrab),Fc,Fs,'fir/sqrt',R,Delay);
Q_TrSig=rcosflt(imag(SigSprScrab),Fc,Fs,'fir/sqrt',R,Delay);
%%%%复发射信号经过加性高斯白噪声信道
RecSig=awgn(I_TrSig+j*Q_TrSig,SNR,'measured');
%%%%经过接收端的低通滤波器
I_ReSig=rcosflt(real(RecSig),Fc,Fs,'fir/sqrt/fs',R,Delay);
Q_ReSig=rcosflt(imag(RecSig),Fc,Fs,'fir/sqrt/fs',R,Delay);
%%抽样
for j=1:Nch
D_Isample(j)=I_ReSig(65+(j-1)*4);
D_Qsample(j)=Q_ReSig(65+(j-1)*4);
end

data=D_Isample+sqrt(-1)*D_Qsample;

%解扰

De_scram=data.*conj(scram);

%%%%解扩
for i=1:Len_Data/2
De_spr(Len_PN*(i-1)+1:Len_PN*i)=De_scram(Len_PN*(i-1)+1:Len_PN*i).*conj(ovsf);
end
%%%%解相关
for k=1:Len_Data/2
Rec_Data(k)=0;
for i=1:Len_PN
Rec_Data(k)=Rec_Data(k)+De_spr((k-1)*Len_PN+i)/Len_PN;
end
end
bb=zeros(1,Len_Data);

%QPSK逆映射与判决
for j=1:Len_Data/2
for k=1:4
test(k)=abs(Rec_Data(j)-(sqrt(-1))^k);
end
test_result=min(test);
if test_result==test(1)
bb(2*j-1)=0;
bb(2*j)=0;
elseif test_result==test(2)
bb(2*j-1)=1;
bb(2*j)=0;
elseif test_result==test(3)
bb(2*j-1)=1;
bb(2*j)=1;
elseif test_result==test(4)
bb(2*j-1)=0;
bb(2*j)=1;
end
end
figure(1)
subplot(211),stem(bb),grid;subplot(212),stem(Signal),grid
figure(2)
m=length(I_ReSig)
xt=repmat([1:16],1,(m-64)/16);
plot(xt,I_ReSig(65:m));
%程序结束
sogno 当前离线   回复时引用此帖