实验一QPSK调制实验
一、实验目的
1、掌握QPSK的调制解调原理。 2、掌握QPSK的软件仿真
。
3、掌握QPSK的硬件设计方法。
二、预习要求
1、掌握QPSK的编解码原理和方法。 2、熟悉matlab的应用和仿真方法。
3、熟悉DSP和FPGA的开发方法。
三、实验原理
1、QPSK调制的工作原理
多相相移键控(MPSK),特别是四相相移键控(QPSK)是目前移动通信、微波通信和卫星通信中最常用的载波传输方式。四相相移键控(QPSK)信号的正弦载波有4个可能的离散相位状态,每个载波相位携带2个二进制符号,其信号
达式为:
i=1,2,3,4 0≤t≤Ts
Ts为四进制符号间隔,{
:i=1,2,3,4}为正弦波载波的相位,有四种可能状态。如以下矢量图所示:
如图为QPSK的相位图,QPSK的相位为(-3π/4,-π/4,π/4,3π/4)。
对于QPSK:
0≤t≤Ts
由于
所以:
QPSK正交调制器方框图如图所示:
图QPSK正交调制器方框图
在kTs≤t≤(k+1) Ts(Ts=2Tb)的区间,QPSK产生器的输出为:
2、QPSK的相干解调的基本工作原理
QPSK的相干解调方框图如图所示:
图QPSK的相干解调方框图
当调制信号为I=1,Q=1时,由调制原理,调制输出信号为
,在没有噪声和延时的理想状态时,解调器的输入
,则I检测器的输出为:
则Q检测器的输出为:
用截止频率小于2
的低通滤波器对I检测器的输出滤波后得到1/2,即为逻辑1;对Q检测器的输出滤波后得到1/2,即为逻辑1。解调出来的I=1,Q=1,解调正确。
四、QPSK的仿真
1、QPSK的眼图和星座图的仿真
(1)建立QPSK仿真文件
(2)仿真结果
2、QPSK的波形和功率谱密度仿真
(1)建立仿真文件
clear all;
Ts=1; %基带信号周期为1s,即为1Hz,输入信号周期为Ts/2=0.5s,即2Hz
fc=1; %载波频率为1Hz
N_sample=64; %每载波采样64个点
N_num=1000; %基带信号为8个码元,每通道4码元
dt=1/fc/N_sample; %采样间隔
t=0:dt:N_num*Ts-dt; %仿真时间
T=dt*length(t); %仿真时间序列
d1=sign(randn(1,N_num)); %随机产生100个基带信号
d2=sign(randn(1,N_num)); %随机产生100个基带信号
gt=ones(1,fc*N_sample); %每码元对应的载波信号
%QPSK调制
s1=sigexpand(d1,fc*N_sample); %码元扩展
s2=sigexpand(d2,fc*N_sample); %码元扩展
b1=conv(s1,gt); %码元扩展
b2=conv(s2,gt); %码元扩展
s1=b1(1:length(s1)); %码元扩展
s2=b2(1:length(s2)); %码元扩展
st_qpsk=s1.*cos(2*pi*fc*t)-s2.*sin(2*pi*fc*t); %QPSK调制信号
st_qpsk=st_qpsk/sqrt(2);
[f y1f]=T2F(t,st_qpsk);
lenf=length(y1f);
Show_num=8; %显示码元数
Show_time=Show_num*Ts; %显示码元数
figure(1);
subplot(431)
plot(t,s1);
xlabel('t');
axis([0 Show_time -1.6 1.6]);
title('I通道基带波形');
subplot(434)
plot(t,s2);
xlabel('t');
axis([0 Show_time -1.6 1.6]);
title('Q通道基带波形');
subplot(437)
plot(t,st_qpsk);
xlabel('t');
axis([0 Show_time -1.6 1.6]);
title('QPSK波形');
subplot(4,3,10)
plot(f,10*log10(abs(y1f).^2/lenf));
xlabel('f');
axis([-20 20 -60 10]);
title('QPSK频谱');
(2)仿真结果
3、QPSK的误码率仿真
(1)建立simulink文件
(2)建立程序文件
%设置仿真间隔
xSampleTime=1/1000;
%设置信噪比取值范围
x=0:10;
for i=1:length(x)
SNR=x(i);
sim('qpsksim1.mdl');
y(i)=ErrorVec(1);
end;
semilogy(x,y);
grid on;
xlabel('SNR(dB)');
ylabel('BER');
title('QPSK');
(3)仿真结果
五、QPSK的硬件设计
1、DAC0800电路
注:在本实验中NRZ码从J606和J605输出。
2、中频调制模块电路
4、AD采样电路
5、FPGA程序的设计
(1) 差分编码模块:
内部电路图:
(2)串并转换模块:
内部电路图:
(3)归零码转为非归零码模块:
VHDL程序:
Library ieee;
use ieee.std_logic_1164.all;
use ieee.std_logic_unsigned.all;
use ieee.std_logic_arith.all;
entity NRZ is
port( I,Q:in std_logic; --I,Q路非归零码的输入
I_NRZ,Q_NRZ:out std_logic_vector(7 downto 0)
); --NRZ码的输出到DAC0800
end entity NRZ;
architecture one of nrz is
begin
process(i,q)
begin
if(I='1')then
I_Nrz<="11111111" ;
else
I_Nrz<="00000000" ;
end if;
if(Q='1')then
Q_Nrz<="11111111" ;
else
Q_Nrz<="00000000" ;
end if;
end process;
end architecture one;
六、实验操作说明
1、操作键盘,是处于QPSK调制解调的模式下,按退出键以外的键,产生不同的码元。
2、操作键盘,是处于QPSK的眼图模式下,观看QPSK的星座图。
3、连接J605到J401,连接J606到J402,完成QPSK的调制。
4、连接J403到J501,分别J503和J504到J601和J602,从TP609和TP610观察QPSK的解调波形
七、实验
1、用matalab中的simulink对QPSK进行软件仿真,绘制QPSK的波形图,分析它的频谱;
2、在Quatus中分别对QPSK的进行仿真,实现差分编码和串并转换;
3、操作键盘,使系统处于QPSK调制解调模式下;
4、用示波器分别测量TP601和TP602,观察输出波形,并将示波器的显示模式调为XY,观察QPSK的星座图;
5、用示波器测量TP603,观察调制后的输出波形;
6、用示波器分别测量TP609和TP610,观察解调后的输出波形;
7、换几组数据(至少4组数据)重复上述步骤3-6。
八、实验仪表
1、电脑一台(装有matlab、Quatus、CCS软件); 2、ByteblasterII下载设备;
3、DSP仿真器; 4、移动通信原理实验系统;
5、60M双踪示波器; 6、数字万用表。
九、思考题
1、对8QPSK进行仿真。 2、设计8PSK的调制电路。
3、分析当解调器的输入信号
与恢复载波
和
存在相移θ,分析相移θ对解调判决的影响,
当传输中出现正负45度以内相移时,解调器仍能正确解调。
4、试分析传输中的白高斯噪声对解调器的影响。
十、实验报告要求
1、整理数据,画出实验内容中要求的各种波形; 2、实验报告中完成思考题。