作业二实验一
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
实验一
一、实验内容
设计π/4-QDPSK或16-QAM调制器仿真程序,画出时域波形、正交分量、同相分量波形,眼图,散点图等。
二、实验及思考过程
a π/4-QDPSK设计部分
1、眼图:所谓眼图就是跨接在抽样判决器的输入端,然后估计和
调整系统性能的一种方法。
2、π/4-QDPSK调制框图
3、实验效果图
①1000bit流画出来的星座图
②调制波形图
③调制波形眼图
3、实验程序
clear all;
close all;
clc;
M=4;
fb=128;
fs=128;
fc=100000;
k=2;
data=randint(1,1000);
x4=reshape(data,k,length(data)/k); %将原始的二进制比特序列每2个1组分组,并排列成k行length(x)/k列的矩阵
xsym=bi2de(x4.','left-msb'); %将矩阵转化为相应的4进制信号序列
y=modulate(modem.dpskmod('M',4),xsym); %用pi/4-qdpsk调制器对信号进行调制
scatterplot(y);grid on; %画出qdpsk信号的星座图
title('星座图一');
y=modulate(modem.dpskmod('M',4,'InitialPhase',pi/4),xsym); %用pi/4-qdpsk调制器对信号进行调制
scatterplot(y);grid on; %画出qdpsk信号的星座图
title('星座图二');
n=length(data)/2;
ang_sum(1)=0;
for i=1:n
sig=data(2*i-1)*2+data(2*i);
if(sig==0)
incr_ag=pi*3/4;
elseif(sig==1)
incr_ag=pi/4;
elseif(sig==2)
incr_ag=-pi*3/4;
elseif(sig==3)
incr_ag=-pi/4;
end;
ang_sum(i+1)=ang_sum(i)+incr_ag;
end
I_d=cos(2*pi*fc)*cos(2*pi*fc+ang_sum);
Q_d=cos(2*pi*fc)*sin(2*pi*fc+ang_sum);
figure;
subplot(311);
plot(I_d+Q_d);
title('pi/4-QDPSK时域波形');
subplot(312);
plot(I_d);
title('同相分量波形');
subplot(313);
plot(Q_d);
title('正相分量波形');
eyediagram(I_d+Q_d,8);
b 16-QAM设计部分
1、QAM调制原理
正交振幅调制是一种振幅和相位联合监控的调制。通过把2ASK 和2PSK两种调制结合起来,使得带宽得到双倍扩展。QAM调制技术用两路独立的基带信号对频率相同、相位正交的两个载波进行抑制载波双边带调幅,最后将已调信号加在一起进行传输。
2、16-QAM调制解调框图
图1 16-QAM调制框图
图2 16-QAM解调框图
3、实验步骤
(1)利用MATLAB中的modem.qammod函数生成16QAM调制器,再通过其对信号进行调制并画出信号的散点图。
(2)生成一个随机且长度为16的二进制比特流,并画出信号序列图。
(3)根据二进制比特流生成调制中的正交和同相分量波形
(4)利用MATLAB生成经过信道后的眼图。
4、实验程序
clear all;
close all;
clc;
M=16;
k=log2(M);
n=1000; %比特序列长度
samp=1; %过采样率
x=randint(n,1); %生成随机二进制比特流
x4=reshape(x,k,length(x)/k); %将原始的二进制比特序列每四个一组分组,并排列成k行length(x)/k列的矩阵
xsym=bi2de(x4.','left-msb'); %将矩阵转化为相应的16进制信号序列
y=modulate(modem.qammod(M),xsym); %用16QAM调制器对信号进行调制scatterplot(y); %画出16QAM信号的星座图
text(real(y)+0.1,imag(y),dec2bin(xsym));
axis([-5 5 -5 5]);
title('1000个bit序列画出的散点图');
x=randint(16,1); %产生16点随机bit流
figure(2);
stem(x);
axis([0 16 0 2]);
xlabel('比特序列');ylabel('信号幅度');
title('16点随机信号序列');
h=length(x);
fc=16;fs=512;fb=16;
ts=10/fc;t=0:1/fs:ts*h-1/fs;l=length(t)/h;
t=reshape(t',l,h);t=t';%reshape把指定的矩阵改变形状,但是元素个数不变,
y=zeros(h/4,l);
j=1;
for i=1:2:h
z(j)=2*x(i)+x(i+1);
j=j+1;
end
for j=1:h/2
for i=1:300
z1((j-1)*300+i)=z(j);
end
end
for i=1:h/4
I(i)=z(2*i-1);
Q(i)=z(2*i);
end
for i=1:h/4 %转换