📄 jb6.m
字号:
%cck调制之符号之间相位的变化
M=80;
fb=6.4e+4; %二进制码元频率 ,即相应的四进制码元速率。基带带宽B=1/Tb=3.2e+4;
fc=3.2e+5; %载波频率
Tc=1/fc; %载波周期
Tb=1/fb; %码元速率
fs=1.28e+6; %采样频率
N=10; %1个码元周期采样10个点
K=2; %二次内插
id=sqrt(-1);
x=randint(1,M); %随机产生的信息
%x=[1,1,0,0,1,1,1,0,0,1,1,0,1,1,0,1,1,1,1,1,1,1,1,1];
%M=24
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%QDPSK,QPSK编码%%%%%%%%%%%%%%%%%%
ref=0; %参考相位
for i=1:8:M
for j=3:2:8
if(x(i-1+j)==0&x(i-1+j+1)==0) %creat the phase of Q2,Q3,Q4
z((j+1)/2)=0;
elseif(x(i-1+j)==0&x(i-1+j+1)==1)
z((j+1)/2)=pi/2;
elseif(x(i-1+j)==1&x(i-1+j+1)==1)
z((j+1)/2)=pi;
else z((j+1)/2)=-pi/2;
end
end
j=1;
if(x(i-1+j)==0&x(i-1+j+1)==0) %DQPSK产生Q1
z((j+1)/2)=0+ref;
elseif(x(i-1+j)==0&x(i-1+j+1)==1)
z((j+1)/2)=pi/2+ref;
elseif(x(i-1+j)==1&x(i-1+j+1)==1)
z((j+1)/2)=pi+ref;
else z((j+1)/2)=-pi/2+ref;
end
ref=z((j+1)/2);
Ik1(i-1+1)=z(1)+z(2)+z(3)+z(4);
Ik1(i-1+2)=z(1)+z(3)+z(4);
Ik1(i-1+3)=z(1)+z(2)+z(4);
Ik1(i-1+4)=z(1)+z(4)+pi;
Ik1(i-1+5)=z(1)+z(2)+z(3);
Ik1(i-1+6)=z(1)+z(3);
Ik1(i-1+7)=z(1)+z(2)+pi;
Ik1(i-1+8)=z(1);
end
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%产生同相分量和正交分量%%%%%%%%%%%%%%%%%%%%%%%%%%
Ik(1)=1;
Qk(1)=0;
for i=2:M+1
Ik(i)=cos(Ik1(i-1));
Qk(i)=sin(Ik1(i-1));
end
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%波形形成%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
t=-5*Tb:Tb/10:5*Tb; %取11个点
for i=1:length(t)
if(t(i)==0)
h(i)=1;
elseif((1-9/4*t(i)^2/Tb^2)==0)
h(i)=0.5;
else
h(i)=sin(pi*t(i)/Tb)/(pi*t(i)/Tb)*(cos(3/4*pi*t(i)/Tb)/(1-9/4*t(i)^2/Tb^2));
end
end
Uk=zeros(1,(M+1)*N+1);
Vk=zeros(1,(M+1)*N+1);
for i=1:M+1
Uk((i-1)*N+N/2+1)=Ik(i);
Vk((i-1)*N+N/2+1)=Qk(i);
end
Uk1=zeros(1,(M+1)*N+length(t));
Uk1=conv(Uk,h);
Uk2=Uk1((length(t)+1)/2:(length(t)+1)/2+(M+1)*N);
Vk1=conv(Vk,h);
Vk2=Vk1((length(t)+1)/2:(length(t)+1)/2+(M+1)*N);
Uk3=interp(Uk2,K);
Vk3=interp(Vk2,K);
Uk4=Uk3(1:length(Uk3)-K+1);
Vk4=Vk3(1:length(Vk3)-K+1);
L=length(Vk4);
t=0:Tc/4:(L-1)*Tc/4;
Isend=cos(2*pi*fc*t).*Uk4;
Qsend=sin(2*pi*fc*t).*Vk4;
y=Isend-Qsend;
plot(Uk1);
hold on ;
plot(Vk1);
pause(1);
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%中频加噪声%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%下变频%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
t=0:Tc/4:(L-1)*Tc/4;
Ireceive1=y.*cos(2*pi*fc*t);
Qreceive1=-y.*sin(2*pi*fc*t);
n=64;
f=[0,0.075,0.08,1]; %低通滤波
m=[1,1,0,0];
b=firls(n,f,m);
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%相关求Q2,Q3,Q4%%%%%%%%%%%%%%%%%%%%%%%
Ireceive2=conv(Ireceive1,b);
Qreceive2=conv(Qreceive1,b);
Ireceive3=Ireceive2(n/2:L+n/2-1);
Qreceive3=Qreceive2(n/2:L+n/2-1);
rsample1(1:M+1)=Ireceive3(N+1:N*K:N+1+N*K*M);
rsample2(1:M+1)=Qreceive3(N+1:N*K:N+1+N*K*M);
rsample3=rsample1(2:M+1);
rsample4=rsample2(2:M+1);
sample1=rsample1(1:8:M+1); %新增
sample2=rsample2(1:8:M+1);
diff1=sample1+id*sample2;
diff2=sample1-id*sample2;
for i=1:M/8
phase_Q1(i)=diff1(i+1)*diff2(i);
end
psignal=rsample3+id*rsample4;
[z,z1]=creat64;
result=relate1(psignal,z,z1,phase_Q1);
E=0;
for i=1:M
if(result(i)==x(i))
E=E+1;
end
end
stem(result);
hold on;
stem(x,'r');
plot(x,'r');
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -