
QPSK调制原理及matlab程序实现(最新整理).docx
6页QPSK调制原理及matlab程序实现(最新整理) QPSK已调信号生成 一、QPSK介绍 QPSK是英文Quadrature Phase Shift Keying 的缩写,意为正交相移键控,是一种数字调制方式其有抗干扰性强、误码性能好、频谱利用率高等优点,广泛应用于数字微波通信系统、数字卫星通信系统、宽带接入、移动通信及有线电视系统之中 二、实验平台和实验内容 1、实验平台 本实验是MATLAB环境中生成基本QPSK已调信号,只需要MATLAB12.02、实验内容 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 - + ∏i ft∏ 2( 2E/t]4/ Sin(t)=cos[2] 0<=t<=T )1 其中,i=1,2,3,4 2、框图 四、实验结果与分析 图一基带信号为周期为127bits的伪随机序列 图二:已调信号时域波形 带宽为Hz 7104 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('基带时域波形'); %载波频率20kHz f=20000; %码元速率20kHz Rb=20000; 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 %---------------------------调制--------------------------- %a路用余弦调制 data_a=data_1.*a; %b路用正弦调制 data_b=data_2.*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; 。
