⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 oqpsk_upload.m

📁 OQPSK调制的仿真
💻 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 + -