📄 oqpsk_upload.m
字号:
%数字通信OQPSK仿真
clear
%产生基带符号流
% M=4; %进制 OQPSK
N=10; %信源比特流长度,为保证对齐,选择是log2(M)的整倍数
bitstream=zeros(1,N); %信源比特流
bitstreamo=zeros(1,N/2); %I支路比特流
bitstreame=zeros(1,N/2+1); %Q支路比特流
symbolstreamo=zeros(1,N); %I支路符号
symbolstreame=zeros(1,N); %Q支路符号
for n1=1:N
bitstream(n1)=binornd(1,0.5,1,1);
end
for no=1:(N/2)
bitstreamo(no)=bitstream(2*no-1);
end
for ne=1:(N/2)
bitstreame(ne)=bitstream(2*ne);
end
%符号编码
%I支路符号
for no=1:length(bitstreamo)
pack=[bitstreamo(no)];% bitstream(2*(n1-1)+2)];% bitstream(4*(n1-1)+3) bitstream(4*(n1-1)+4)];
if pack==[1]% 0 0]
symbolstreamo(2*no-1)=1;
symbolstreamo(2*no)=1;
elseif pack==[0]% 1 0]
symbolstreamo(2*no-1)=-1;
symbolstreamo(2*no)=-1;
end
end
%Q支路符号
for ne=1:length(bitstreame)
pack=[bitstreame(ne)];
if ne==1 %与I支路错位半个码元
switch pack
case [0]
symbolstreame(2*ne-1)=0;
symbolstreame(2*ne)=1;
case [1]
symbolstreame(2*ne-1)=0;
symbolstreame(2*ne)=-1;
end
else
if pack==[1]
symbolstreame(2*ne-1)=symbolstreame(2*ne-2);
symbolstreame(2*ne)=1;
elseif pack==[0]
symbolstreame(2*ne-1)=symbolstreame(2*ne-2);
symbolstreame(2*ne)=-1;
end
end
end
%产生载波
fc=10; %载波频率
fs=100; %采样频率
T=1; %每符号持续时间
N_samples=T*fs; %每符号内的采样点数
t=0:T/N_samples:(T-T/N_samples);
carrier=exp(j*2*pi*fc*t);
%产生信号脉冲g(t),可选矩形窗或升余弦窗
gt=ones(1,length(carrier)); %矩形窗
% gt=1-cos(2*pi*(1/T)*t); % 升余弦窗
%生成调制信号I支路调制信号Si(t)
St_complex=zeros(1,length(carrier)*length(symbolstreamo));
for n1=1:length(symbolstreamo)
St_complex((N_samples*(n1-1)+1):(N_samples*(n1-1)+N_samples))=(symbolstreamo(n1)*carrier).*gt;
end
figure(1)
Sit_real=real(St_complex);
plot(Sit_real);
title('I支路BPSK调制仿真波形图 载波10Hz g(t)为矩形窗');%也可选为升余弦脉冲
%生成Q支路调制信号Sq(t)
St_complex=zeros(1,length(carrier)*length(symbolstreamo));
for n1=1:length(symbolstreamo)
St_complex((N_samples*(n1-1)+1):(N_samples*(n1-1)+N_samples))=(symbolstreame(n1)*carrier).*gt;
end
figure(2)
Sqt_imag=imag(St_complex);
plot(Sqt_imag);
title('Q支路BPSK调制仿真波形图 载波10Hz g(t)为矩形窗');%也可选为升余弦脉冲
%生成调制信号S(t)
St=Sit_real+Sqt_imag;
% axis([-3 3 0 300])
figure(3)
plot(St)
axis([200 1000 -1.5 1.5])
title('OQPSK仿真波形图 载波10Hz g(t)为矩形窗');%也可选为升余弦脉冲
xlabel('采样点')
ylabel('幅度')
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -