(完整版)QPSK调制原理及matlab程序实现
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
QPSK已调信号生成
一、QPSK介绍
QPSK是英文Quadrature Phase Shift Keying 的缩写,意为正交相移键控,是一种数字调制方式。
其有抗干扰性强、误码性能好、频谱利用率高等优点,广泛应用于数字微波通信系统、数字卫星通信系统、宽带接入、移动通信及有线电视系统之中。
二、实验平台和实验内容
1、实验平台
本实验是MATLAB环境中生成基本QPSK已调信号,只需要MATLAB12.0。
2、实验内容
1.基带信号为周期127bits伪随机序列,信息比特速率:20kbps,载波频率:
20kHz(速率及频率参数现场可调整);
2.在MATLAB环境中编写M代码搭建QPSK调制系统模型;
3.观测基带时域波形、已调信号时域波形;
4.观测基带发射星座图;
5.观测已调信号的功率谱(优先)或频谱;
三、实现框图及其原理分析
1、原理分析及其结构
QPSK与二进制PSK一样,传输信号包含的信息都存在于相位中。
载波相位取四个等间隔值之一,如л/4, 3л/4,5л/4,和7л/4。
相应的E为发射信号的每个符号的能量,T为符号持续时间,载波频率f等于nc/T,nc为固定整数。
每一个可能的相位值对应于一个特定的二位组。
例如,可用前述的一组相位值来表示格雷码的一组二位组:10,00,01,11。
Sin(t)=2E/tcos[2]4/
+
∏i]0<=t<=T
)1
-
ft∏
2(
其中,i=1,2,3,4。
2、框图
四、实验结果与分析
图一基带信号为周期为127bits的伪随机序列。
图二:已调信号时域波形
带宽为7104 Hz
B点信号的星座图映射,00、01、10、11组合分别映射成-1-j,-1+j,1-j,1+j。
五、实验源码
clc;
clear all;
Num=127;
data=randi([0 1],1,Num);
figure(1)
plot(data)
title('基带时域波形');
f=20000; %载波频率20kHz
Rb=20000; %码元速率20kHz
Ts=1/f;
Ns=8000;
sample=1*Ns; %每个码元采点数为8000,采样频率为8000*20kHz N=sample*length(data)/2; %总采样点数
data1=2*data-1; %正/负极性变换,产生二进制不归零双极性码元
%-------------------------将信息源分成两路,分别对信号进行抽样-------------
data_1=zeros(1,N); %定义一个长度为N的空数据data_1
for i1=1:Num/2
data_1(sample*(i1-1)+1:sample*i1)=data1(2*i1-1); %对奇数码元进行采样
end
data_2=zeros(1,N);
for i2=1:Num/2
data_2(sample*(i2-1)+1:sample*i2)=data1(2*i2); %对偶数码元进行采样end
a=zeros(1,N);
b=zeros(1,N);
for j1=1:N
a(j1)=cos(2*pi*f*(j1-1)*Ts/Ns); %对余弦载波抽样每个周期采N个点 b(j1)=-sin(2*pi*f*(j1-1)*Ts/Ns); %对正弦载波抽样每个周期采N个点end
%---------------------------调制---------------------------
data_a=data_1.*a; %a路用余弦调制
data_b=data_2.*b; %b路用正弦调制
data_c=data_a+data_b;
figure(2)
subplot(3,1,1)
plot(data_a)
title('QPSK已调实部时域信号');
subplot(3,1,2)
plot(data_b)
title('QPSK已调虚部时域信号');
subplot(3,1,3)
plot(data_c);
title('QPSK已调信号时域波形');
%---------------------绘制调制后波形的频谱图-------------------
data_modul1= data_1(1:502000)+1i*data_2(1:502000);
data_modul=data_a+1i*data_b;%调制后总的信号
figure(3)
plot(data_modul1,'o');
axis([-2 2 -2 2]);
title('星座图');
figure(4)
QPSK=10*log10(abs(fftshift(fft(data_modul,2048))).^2); %信号的频率值SFreq=linspace(-Rb*sample/2,Rb*sample/2,length(QPSK)); %信号的频率谱范围plot(SFreq,QPSK);
title('QPSK已调信号频谱图');
xlabel('Frequency');
ylabel('Amplitude');
hold on;。