通信原理现代通信技术QPSK仿真报告.docx

上传人:b****8 文档编号:11071572 上传时间:2023-02-24 格式:DOCX 页数:14 大小:197.36KB
下载 相关 举报
通信原理现代通信技术QPSK仿真报告.docx_第1页
第1页 / 共14页
通信原理现代通信技术QPSK仿真报告.docx_第2页
第2页 / 共14页
通信原理现代通信技术QPSK仿真报告.docx_第3页
第3页 / 共14页
通信原理现代通信技术QPSK仿真报告.docx_第4页
第4页 / 共14页
通信原理现代通信技术QPSK仿真报告.docx_第5页
第5页 / 共14页
点击查看更多>>
下载资源
资源描述

通信原理现代通信技术QPSK仿真报告.docx

《通信原理现代通信技术QPSK仿真报告.docx》由会员分享,可在线阅读,更多相关《通信原理现代通信技术QPSK仿真报告.docx(14页珍藏版)》请在冰豆网上搜索。

通信原理现代通信技术QPSK仿真报告.docx

通信原理现代通信技术QPSK仿真报告

《通信原理》实验课程

 

课程实验报告

 

一、实验要求

QPSK调制仿真与分析

使用matlab仿真实现QPSK相干调制与解调,要求:

1)调制载波中心频率为5MHz,二进制数据比特率为2Mbps,基带信号波形采用滚降系数为0.4的平方根升余弦滤波器,画出4个载波周期I、Q调制分量的时域波形和对应的二进制码。

2)画出基带|、Q信号和已调信号的频谱。

3)通过AWGN信道,Eb/N0在0到20dB之间变化,画出误比特率曲线,并和理论误比特率进行对比;

4)画出Eb/N0分 别为5dB和10dB时的星座图;

二、实验环境

软件:

MATLABR2018a

三、实验原理

1、四进制相移键控(QPSK)的载波信号有四种可能的离散相位状态

,每个载波相位携带两个二进制码元。

双bite码元与载波相位的常见对应关系有A\B两种方式。

双比特码元

载波相位

A方式

B方式

00

π

-3π/4

10

-π/2

-π/4

11

0

π/4

01

π/2

3π/4

B方式的另一种表示:

B方式的QPSK信号的正交调制原理如下图。

公式有:

式中,同相分量

2、误比特率与信噪比

信噪比SNR=10lg(Ps/Pn),其中Ps和Pn分别代表信号和噪声的有效功率

Eb/N0为比特信噪比。

显然,信噪比越大,信号的误码率越小。

3、星座图

数字通信系统中,每个符号间隔输出一个符号,对应一个信号波形。

M进制数字通信系统在发送端需要设计出M种不同的信号。

如前所述,信号s;()可以通过矢量空间分析器得到矢量,这样M个能量信号波形就可映射为N维空间中的M个点。

将所对应的N维空间中的M个点的集合称为M进制信号的星座图,或称为信号空间图,或称为信号矢量图。

相对于前面介绍的一般信号波形,数字信号波形一般限定在一个符号间隔内,二进制数字信号限定在0≤1≤T,多进制数字信号限定时间在0≤1≤T。

四、实验设计与运行结果

首先声明:

因为题目要求的频率过高,电脑配置不足,每次调制用时过长,先将所有的数据等比例缩小,如调制载波中心频率5MHz→5Hz,二进制数据比特率2Mbps→2bps。

1、调制

使用调相法产生B方式的QPSK信号。

1基带信号生成:

随机数判决+比特率为节奏的for函数。

2穿并行转换与极性变换:

条件判决即可。

如:

生成{a2n+1}

ifstt(2*n-1)==1st1(n)=1;else

st1(n)=-1;end

运行结果如下图,

3与载波信号调制合成:

使双极性码与相互正交的载波相乘,同相支路和正交之路分别完成2PSK,最后叠加,得到B方式的QPSK信号。

实验即用代码复述上述过程,得到结果如下图:

2、加噪声

使用matlab函数awgn(x,SNR)。

其意义为:

在信号x中加入高斯白噪声。

信噪比SNR以dB为单位。

x的强度假定为0dBW。

如果x是复数,就加入复噪声。

结果在上一张图已经呈现,再次给出:

3、求频谱

Matlab中求函数频谱的过程是:

对函数做傅里叶变换后,进行快速傅里叶变换计算。

程序中使用的函数是:

function[f,sf]=T2F(t,st)

得到如下的结果图:

4、误码率曲线的得到与对比

5、星座图

五、程序源代码

i=10;%基带信号码元数*106

j=5000;

j1=2000;

t=linspace(0,5,j);%0-5之间产生5000个点行矢量,即将[0,5]分成5000份

t1=linspace(0,2,j1)

f=5;%载波频率*106

fm=i/5;%基带信号频率,码元数是10*106,而时域长度是5,也就是一个单位2*106个码元

a=round(rand(1,i));%产生随机序列

%产生基带信号

stt=t;

forn=1:

10

ifa(n)<1

form=j/i*(n-1)+1:

j/i*n

stt(m)=0;

end

else

form=j/i*(n-1)+1:

j/i*n

stt(m)=1;

end

end

end

figure

(1);

subplot(311);

plot(t,stt);

title('基带信号stt');

axis([0,5,-1,2]);

%并行信号

st1=t;

forn=1:

j/2

ifstt(2*n-1)==1

st1(n)=1;

else

st1(n)=-1;

end

end

subplot(312);

s1=st1(1:

2000);

plot(t1,s1);

title('基带信号码st1');

axis([0,2,-1,2]);

st2=t;

forn=1:

j/2

ifstt(2*n)==1

st2(n)=1;

else

st2(n)=-1;

end

end

subplot(313);

s2=st2(1:

2000);

plot(t1,s2);

title('基带信号码st2');

axis([0,2,-1,2]);

%载波信号

s1=cos(2*pi*f*t);

s2=-sin(2*pi*f*t);

%调制

F1=st1.*s1;%加入载波1同相I

F2=st1.*s2;%加入载波2正交Q

figure

(2);

subplot(411);

plot(t,F1);

title('I:

F1=s1*st1');

axis([0,2,-1,2]);

subplot(412);

plot(t,F2);

title('Q:

F2=s2*st2');

axis([0,2,-1,2]);

e_fsk=F1+F2;

subplot(413);

plot(t,e_fsk);

title('QPSK信号');

axis([0,2,-1,2]);

%加噪

fsk=awgn(e_fsk,20)%在信号x中加入高斯白噪声。

信噪比SNR以dB为单位。

x的强度假定为0dBW。

如果x是复数,就加入复噪声。

subplot(414);

plot(t,fsk);

title('加噪声后信号')

axis([0,2,-1,2]);

[f,sf1]=T2F(t,st1);

[f,sf2]=T2F(t,st2);

[f,sf3]=T2F(t,fsk);%傅里叶变换

figure(3);

subplot(311);

plot(t,sf1);axis([2.3,2.7,-1,10]);title('s1');

subplot(312);

plot(t,sf2);axis([2.3,2.7,-1,10]);title('s2');

subplot(313);

plot(t,sf3);axis([2.3,2.7,-1,10]);title('加噪后的信号');

%误码率计算

Maxbit=1000;

Eb=1;

fori=1:

20%信噪比从1到20dB

forcnt=1:

10%对于每个信噪比,进行10次实验,最后求平均

SNR=10^(0.1*i);%信噪比

N0=Eb/SNR;

Sigma=sqrt(N0/2);

b=rand(1,Maxbit);%随机数据

b_bin=round(b);%01比特流

b2=sign(b_bin-0.5);%调制后的-1和+1比特流

Noise=Sigma*randn(1,Maxbit);

%snt调制信号与噪声叠加后的信号

fsk1=fsk(1:

1000);

Snt=fsk1+Noise;

%解调过程,抽样判决,<0,判为-1,>0,判为+1

res(Snt<0)=-1;

res(Snt>=0)=1;

%Snt.*b2,解调正确,相乘结果为+1,若发生误码,结果为-1

St=res.*fsk1;

%err为误码的个数

err(cnt)=length(find(St<0));

end

%Pb计算信噪比为idB时的误比特率

Pb(i)=(mean(err)/Maxbit)*100;

end

figure(4);

subplot(211);

semilogy(Pb);

xlabel('信噪比(dB)');

ylabel('实际误码率Pe')

%同上计算理论

Maxbit=1000;

Eb=1;

fori=1:

15

forcnt=1:

10

b=rand(1,Maxbit);

b_bin=round(b);

b2=sign(b_bin-0.5);

SNR=10^(0.1*i);

N0=Eb/SNR;

Sigma=sqrt(N0/2);

Noise=Sigma*randn(1,Maxbit);

Snt=b2+Noise;

res(Snt<0)=-1;

res(Snt>=0)=1

St=res.*b2;

err(cnt)=length(find(St<0));

end

Pb(i)=(mean(err)/Maxbit)*100;

end

figure(4);

subplot(212);

semilogy(Pb);

xlabel('信噪比(dB)');

ylabel('理论误码率Pe')

axis([0,10,0.1,10]);

clearall;

msg=randi([0,3],1,5000);%4进制,20个符号

figure

(1);stem(msg);

msg1=pskmod(msg,4,pi/4);%4psk调制初始相位为pi/4

msg2=awgn(msg1,5)

scatterplot(msg2);

title('SNR=5dB');axis([-1.2,1.2,-1.2,1.2]);%画星座图

xlabel('f1')

ylabel('f2')

holdon;

rectangle('Position',[-1,-1,2,2],'Curvature',[1,1]);axisequal;%画圆

clearall;

msg=randi([0,3],1,5000);%4进制,20个符号

figure

(2);stem(msg);

msg1=pskmod(msg,4,pi/4);%4psk调制初始相位为pi/4

msg2=awgn(msg1,10)

scatterplot(msg2);title('SNR=10dB');axis([-1.2,1.2,-1.2,1.2]);%画星座图

xlabel('f1')

ylabel('f2')

holdon;

rectangle('Position',[-1,-1,2,2],'Curvature',[1,1]);axisequal;%画圆

%用于频谱的函数

function[f,sf]=T2F(t,st)

%利用FFT计算信号的频谱并与信号的真实频谱的抽样比较。

%脚本文件T2F.m定义了函数T2F,计算信号的傅立叶变换。

%Inputisthetimeandthesignalvectors,thelengthoftimemustgreater

%than2

%Outputisthefrequencyandthesignalspectrum

dt=t

(2)-t

(1);

T=t(end);

df=1/T;

N=length(st);

f=-N/2*df:

df:

N/2*df-df;

sf=fft(st);

sf=T/N*fftshift(sf);

end

六、总结

对于这次仿真实践,我最大的感想就是“太难了!

”。

之前我接触的matlab只是较为简单的编程和simulink的应用,对QPSK调制这种长而复杂的编程不但心存恐惧,还完全没有头绪。

一开始我希望求助于书本已经有的模型,但发现资料少有后,决定自己仔细研究。

QPSK(4psk)等是数字信号常用的调制信号,它的原理模型并不复杂,但是由于matlab语言的兼容性强大,它的语言类型太复杂,很多函数使用时我对参数非常茫然,好在经过研究,最后完成了设计和这份报告。

总结一下,在设计QPSK调制解调系统时,需要对参数的正确了解、对采样概念的理解。

在对一个软件不理解的时候,原版的说明书是非常好的工具,比如matlab有专门的网站放置说明文件和社区分享使用者的程序。

通过这次设计实验,我更加深入了解了QPSK等调制方法的可行性,也熟悉了matlab诸多通信工具函数的使用,还巩固了通信原理中基础参数的知识。

 

七、参考文献

[1]张祖凡,等通信原理.北京:

电子工业出版社,2018

[2]樊昌信,等通信原理第七版.北京:

国防工业出版社,2012

 

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 高等教育 > 经济学

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1