作业二实验一

合集下载
相关主题
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 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 %转换

相关文档
最新文档