clear all
clc
close all
warning off
%% --------------初始化参数--------------------
frm_len=100;
fs=2.4*10^9;
Ts=1/fs;
%------成型滤波器
Rr=4; %斜升域长度
M = 8; %滤波器横跨符号数
Sps=4; %每个符号的成型滤波采样点数
dPulseShaping = fdesign.pulseshaping(Sps,'Square Root Raised Cosine','Nsym,Beta',M,0.25);
hPulseShaping = design(dPulseShaping);
ShapeFilter= hPulseShaping.Numerator(1:33);
ShapeFilter=round(ShapeFilter*512);
MatchFilter=ShapeFilter;
%% --------------------- 仿真 ------------------------------
barker_11=[1 1 1 0 0 0 1 0 0 1 0 ];
baker7=[1 1 1 0 0 1 0];
PN_11=(2*barker_11-1)';
%------组帧
% 产生两路随机数
% Bit_i=randint(1,frm_len);
% dlmwrite('Bit_i.txt',Bit_i,'delimiter','\t','newline','pc');
f1=fopen('Bit_i.txt','r');
Bit_i=fscanf(f1,'%d')';
% Bit_q=randint(1,frm_len);
% dlmwrite('Bit_q.txt',Bit_q,'delimiter','\t','newline','pc');
f2=fopen('Bit_q.txt','r');
Bit_q=fscanf(f2,'%d')';
%---扩频
for i=1:frm_len
for j=1:11
dsout_i((i-1)*11+j)=bitxor(Bit_i(i),barker_11(j));
dsout_q((i-1)*11+j)=bitxor(Bit_q(i),barker_11(j));
zz=barker_11(j);
end
end
%---BPSK
bpsk_i=2*dsout_i-1;
bpsk_q=2*dsout_q-1;
%----插值
inter_I=upsample(bpsk_i,4);
inter_Q=upsample(bpsk_q,4);
%---成型
Sig_snd_I=conv(ShapeFilter,inter_I);
Sig_snd_Q=conv(ShapeFilter,inter_Q);
Sig_snd=Sig_snd_I+1j*Sig_snd_Q;
%---匹配
Sig_Mlt=conv(MatchFilter,Sig_snd);
Sig_Mlt_I=real(Sig_Mlt);
Sig_Mlt_Q=imag(Sig_Mlt);
%----同步解扩
for i=1:length(Sig_Mlt_I)-40
cor_sumi(i) = Sig_Mlt_I(i:4:i+40)*PN_11;
end
for i=1:length(Sig_Mlt_Q)-40
cor_sumq(i) = Sig_Mlt_Q(i:4:i+40)*PN_11;
end
figure(1)
stem(abs(cor_sumi(1:1000)))
Sig_rcv_I=cor_sumi(33:44:end);
Sig_rcv_Q=cor_sumq(33:44:end);
%----判决
for i=1:length(Sig_rcv_I)
if(Sig_rcv_I(i)>0)
data_i(i)=0;
else
data_i(i)=1;
end
end
for i=1:length(Sig_rcv_Q)
if(Sig_rcv_Q(i)>0)
data_q(i)=0;
else
data_q(i)=1;
end
end
f1=find(Bit_i~=data_i(1:100))
f2=find(Bit_q~=data_q(1:100))