📄 qpsk2.m
字号:
%QPSK调制
%以码元速率1.2288M为例,生成QPSK和OQPSK信号,验证生成信号的波形
clc;%清除命令窗口
clear all;%清除工作空间workspace,以释放内存
clOSE all;%
%生成随机数
%以下为QPSK调制
x_length=20; % 信息码元个数
Rb=1228800;%码元速率1.2288M
k=1; %一个码元间隔包括1个载波周期
fc=k*Rb; % 载波频率,
fs=fc*16; % 信号采样率
x_size=k*fs/fc;
y=1:x_size; % 采样时间序列,每个码元采x_size点
x_i=randsrc(1,x_length,[-1,1]);%sign(rand(1,x_length)-0.5); 正负号函数sign,产生随机码
x_q=randsrc(1,x_length,[-1,1]);
for i=1:x_length
baseband_i(1,1+(i-1)*x_size:i*x_size)=x_i(i);%将码元展宽x_size倍
baseband_q(1,1+(i-1)*x_size:i*x_size)=x_q(i);%将码元展宽x_size倍
end
%将i路提前半个码元,相当于将q路延迟半个码元
basefore_i=zeros(1,length(baseband_i));
basefore_i(1:length(baseband_i)-x_size/2)=baseband_i(x_size/2+1:length(baseband_i));
%产生载波
carry_i(1:x_length*x_size)=cos(2*pi*fc*(1:x_length*x_size)/fs+pi/4);
carry_q(1:x_length*x_size)=sin(2*pi*fc*(1:x_length*x_size)/fs+pi/4);
%BPSK调制
s_i=baseband_i.*carry_i;
s_q=baseband_q.*carry_q;
sfore_i=basefore_i.*carry_i;
%输出QPSK信号
sqpsk=s_i+s_q;
soqpsk=sfore_i+s_q;
%%%%%%%%%%%%%%%%%%%%%%%%
%图1,调制信号频谱图
figure(2)
subplot(4,1,1)
plot(baseband_i) %显示基带信号波形
%axis([0 x_size*8 -1.5 1.5])
grid on
title('I路码元信号')
subplot(4,1,2)
plot(basefore_i) %显示基带信号波形
%axis([0 x_size*8 -1.5 1.5])
grid on
title('I路码元信号')
subplot(4,1,3)
plot(baseband_q) %显示载波信号波形
%axis([0 x_size*8 -1.5 1.5])
title('Q路码元信号')
grid on
subplot(4,1,4)
plot(carry_i) %显示调制信号波形
%axis([0 x_size*8 -1.5 1.5])
title('载波')
grid on
figure(3)
subplot(3,1,1)
plot(s_i) %显示基带信号波形
%axis([0 x_size*8 -1.5 1.5])
grid on
title('I路BPSK调制信号')
subplot(3,1,2)
plot(s_q) %显示载波信号波形
%axis([0 x_size*8 -1.5 1.5])
title('Q路BPSK调制信号')
grid on
subplot(3,1,3)
plot(sqpsk) %显示调制信号波形
%axis([0 x_size*8 -1.5 1.5])
title('QPSK调制信号')
grid on
figure(4)
subplot(3,1,1)
plot(sfore_i) %显示基带信号波形
%axis([0 x_size*8 -1.5 1.5])
grid on
title('I路BPSK调制信号')
subplot(3,1,2)
plot(s_q) %显示载波信号波形
%axis([0 x_size*8 -1.5 1.5])
title('Q路BPSK调制信号')
grid on
subplot(3,1,3)
plot(soqpsk) %显示调制信号波形
%axis([0 x_size*8 -1.5 1.5])
title('OQPSK调制信号')
grid on
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -