通信原理课程设计QPSK信号的调制解调.docx

上传人:b****2 文档编号:22798342 上传时间:2023-04-28 格式:DOCX 页数:16 大小:70.69KB
下载 相关 举报
通信原理课程设计QPSK信号的调制解调.docx_第1页
第1页 / 共16页
通信原理课程设计QPSK信号的调制解调.docx_第2页
第2页 / 共16页
通信原理课程设计QPSK信号的调制解调.docx_第3页
第3页 / 共16页
通信原理课程设计QPSK信号的调制解调.docx_第4页
第4页 / 共16页
通信原理课程设计QPSK信号的调制解调.docx_第5页
第5页 / 共16页
点击查看更多>>
下载资源
资源描述

通信原理课程设计QPSK信号的调制解调.docx

《通信原理课程设计QPSK信号的调制解调.docx》由会员分享,可在线阅读,更多相关《通信原理课程设计QPSK信号的调制解调.docx(16页珍藏版)》请在冰豆网上搜索。

通信原理课程设计QPSK信号的调制解调.docx

通信原理课程设计QPSK信号的调制解调

一、QPSK信号的调制解调

一、题目要求

利用matlab软件设计并仿真下面的无线通信系统

要求:

1、输入信号为比特流形式,比特速率通常为100kbps数量级。

2、载波频率自定。

通常为MHz数量级。

3、信道为多径信道(仿真中2径即可,信道中噪声为加性高斯白

噪声。

4、信噪比自行设定。

5、画出图中各点波形。

6、画出系统误码率与接收端信噪比SNR的关系(蒙特卡洛仿真。

7、在给定信噪比的情况下,分析多径延时大小对系统性能有没有影

响?

画出系统误码率与多径时延大小之间的关系。

二、设计思路

1、利用matlab随机函数产生随机0、1的数字信号,频率为100kbps,变成极性码,把得到的数字信号分成两路进行正交调制。

2、载波频率选择为1Mhz,进行调制,即每个码元由10个正弦波调制,每个码元选取100个点表示,即抽样频率为10Mhz。

3、相乘调制后得到的两路信号相加得到的信号,通过天线发送出去。

4、在无线信道中会有高斯白噪声和信号的多径(仿真中2径时延产生影响。

5、接收端接收到信号后,进行带通滤波,采用巴特沃斯滤波器,将带外噪声滤掉。

6、对信号进行解调,分别乘以cos和sin两路本地载波,得到的结果

用低通滤波器滤波,得到解调的信号。

7、对解调得到的信号判决,大于零为+1,小于零为-1,传给信宿。

8、对比判决后的信号和原始极性码,求出误码率。

9、改变在无线信道中加入的高斯白噪声和信号的信噪比,从-19dB到10Db,分别对应的误码率,画出曲线。

10、改变多径(二径时延,从一个dt到20dt,分别对应的误码率,画出曲线。

三、模块设计

1、发送端产生1000个随机0、1数字信号,并按照奇偶分成两路,a点波形

%%%%%%%%%%%%%%%%%%朱尤祥09通信三班090610131%%%%%%%%%%%%%%%%%%%

%f=100000,信号频率100kbps;fc=1000000;载频1Mhz

clearall

num=1000;%取num个抽样点

n=100;%每个间隔取n个点,来恢复波形和延时

f=100000;

fc=1000000;

dt=1/f/n;%时间间隔即为每个码元宽度除以n

t=0:

dt(1/f*num-dt;%总码元时间

N=length(t;%长度

t1=0:

dt(1/f*num/2-dt;%串并转换,时间减半

m=1;%延时

t2=0:

dt(1/f*num/2+(m-1*dt;%串并之后,延时m

forrecycle=1:

10

data=randint(1,num,2;%num个抽样点

datanrz=data.*2-1;%变成极性码

%串并转换,将奇偶位分开

idata=datanrz(1:

2(num-1;%奇

qdata=datanrz(2:

2:

num;%偶

ich=zeros(1,num*n/2;%初始化波形信号

fori=1:

num/2

ich((i-1*n+1:

i*n=idata(i;

end

figure(1

subplot(121

plot(t1,ich;axis([0,1/f*num/2,-1.5,1.5];title(‘数字信源的一路信号,奇数’;

forii=1:

N/2

a(ii=cos(2*pi*fc*t(ii;

end

idata1=ich.*a;%奇数位的抽样值与cos函数相乘得到其中的一路信号

qch=zeros(1,num*n/2;forj=1:

num/2

qch((j-1*n+1:

j*n=qdata(j;end

subplot(122

plot(t1,qch;axis([0,1/f*num/2,-1.5,1.5];title(‘数字信源的另一路信号,偶数’;forjj=1:

N/2

b(jj=sin(2*pi*fc*t(jj;end

qdata1=qch.*b;%偶数位的抽样值与sin函数相乘得到其中的另一路信号

1

012345

x10

-3

数字信源的一路信号,奇数012345

x10

-3

数字信源的另一路信号,偶数

2、载波频率为1Mhz,为b点的波形(放大后

figure(2

carrier=cos(2*pi*fc*t1;

plot(t1,carrier;title(‘fc=1Mhz的载波’;

2

fc=1Mhz的载波

x10-4

3、将两路信号相加,得到发送端发送的信号,即c点波形(放大后s=idata1+qdata1;%将奇偶相加

figure(3

plot(t1,s,title(‘调制信号,即是两路合并发送的信号’

3

调制信号,即是两路合并发送的信号

x10-4

4、在信道中加入了高斯白噪声和由于二径时延信号的合成,直射波的幅度取0.7,反射波的幅度取0.3。

%%%%%%%%%%信道的二径与噪声之后接收到得信号x1%%%%%%%%%%%%%%%

a1=0.7;%直射波的衰减

a2=0.3;%反射波的衰减

%%%%%%%%%时延m*dt

s1=a1*[szeros(1,m];

s2=a2*[zeros(1,ms];

x=s1+s2;%二径引起的变化

x1=awgn(x,10%叠加高斯白噪声,信噪比SNR为10dB

figure(4

plot(t2,x1;title(‘在多径和高斯信道下的接收波形’

4

在多径和高斯信道下的接收波形

00.511.522.533.544.55

x10-3

5、用巴特沃斯带通滤波器对接收端得到的信号进行滤波,滤掉带外噪声。

%%%%%%%%%%%%%%%%%接收端的带通滤波器x2%%%%%%%%%%%%%%%%

w1=2*dt*(fc-f;

w2=2*dt*(fc+f;

[c,d]=butter(4,[w1,w2],’bandpass’;%4阶butterworth滤波器

x2=filter(c,d,x1;

figure(5

plot(t2,x2;title(‘信号通过带通滤波器’;

5

信号通过带通滤波器

00.511.522.533.544.55

x10-3

6、解调信号并低通滤波

%%%%%%%%%%%%%%%%%信号的解调%%%%%%%%%%%%%%%%

w=2*dt*f;

[p,q]=butter(4,w,’low’;%4阶butterworth低通滤波器

%%%%%%%%%%%%%%%%%%%

x3=cos(2*pi*fc*t2.*x2;%乘以载波

x4=filter(p,q,x3;

figure(6

subplot(121

plot(t2,x4;axis([0,1/f*num/2,-1,1];title(‘QPSK解调并经过滤波得到的一路信号’%%%%%%%%%%%%%%%%%%%

x5=sin(2*pi*fc*t2.*x2;%乘以与之前正交的载波,解调另一半码元串

x6=filter(p,q,x5;

subplot(122

plot(t2,x6;axis([0,1/f*num/2,-1,1];title(‘QPSK解调并经过滤波得到的另一路信号’

6

x10-3QPSK解调并经过滤波得到的一路信号x10-3

QPSK解调并经过滤波得到的另一路信号

%%%%%%%%%%%%%%%%%系统的误码率%%%%%%%%%%%%%%%

decoder_i=zeros(1,(num/2;%初始化奇

decoder_q=zeros(1,(num/2;%初始化偶

forg=1:

num/2

decoder_i(g=x4((n+1+(g-1*n;%对奇数列采样

end

forh=1:

num/2

decoder_q(h=x6((n+1+(h-1*n;%对偶数列采样

end

%采样后进行并串转换

decoder=zeros(1,num;

decoder(1:

2(num-1=decoder_i;

decoder(2:

2:

num=decoder_q;

%把抽样得到的decoder转化为极性码

forij=1:

num

if(decoder(ij>0

else

decoder(ij=-1;

end

end

%比较decoder和datanrz,求误码率

correct_code=0;%正确接收的码元

forij=1:

num

if(decoder(ij==datanrz(ij

correct_code=correct_code+1;

end

end

mistake_code=num-correct_code;%误码

error_rate(recycle=mistake_code/num;%误码率

end

miscode=mean(error_rate;

通过每次仿真1000个码元,循环10次,共10000个码元,取平均值,得到miscode为4

⨯。

210-

7、改变信道中信号与高斯白噪声的信噪比,从-19dB到10dB,分别

对应着不用的误码率,画出曲线。

%%%%%%%%%%%%%%%%%%系统的误码率与接收端信噪比SNR的关系%%%%%%%%%%%%%%%%%%

SNR=-20;%初值-19dB

errorrate=zeros(1,30;%初始化对应的误码率

fortimes=1:

30

SNR=SNR+1;

x1=awgn(x,SNR%叠加高斯白噪声,信噪比SNR

[c,d]=butter(4,[w1,w2],’bandpass’;%4阶butterworth滤波器

x2=filter(c,d,x1;

x3=cos(2*pi*fc*t2.*x2;%乘以载波

x4=filter(p,q,x3;

x5=sin(2*pi*fc*t2.*x2;%乘以与之前正交的载波,解调另一半码元串

x6=filter(p,q,x5;

decoder_i=zeros(1,(num/2;%初始化奇

decoder_q=zeros(1,(num/2;%初始化偶

forg=1:

num/2

decoder_i(g=x4((n+1+(g-1*n;

end

forh=1:

num/2

decoder_q(h=x6((n+1+(h-1*n;

end%抽样后进行并串转换

decoder=zeros(1,num;

decoder(1:

2(num-1=decoder_i;

decoder(2:

2:

num=decoder_q;%把抽样得到的decoder转化为极性码,与原始的信号进行比较,求误码率

forij=1:

num

if(decoder(ij>0

else

decoder(ij=-1;

end

end%转换为极性码

correct_code=0;%正确接收的码元

forij=1:

num

if(decoder(ij==datanrz(ij

correct_code=correct_code+1;

end

end

mistake_code=num-correct_code;%误码

error_rate=mistake_code/num;%误码率

errorrate(times=error_rate;

end

figure(7

plot([-19:

10],errorrate;title(‘系统的误码率与接收端信噪比SNR的关系’;xlabel(‘接收端信噪比SNR/dB’;ylabel(‘系统的误码率’;

7

系统的误码率与接收端信噪比SNR的关系

接收端信噪比SNR/dB系统的误码率

从图中可以直观的看出随着在无线信道中加入的高斯白噪声的大小(通过改变awgn函数中的信噪比来实现,误码率也在改变;总体趋势是,接收端信噪比越高,解调得到的信号的误码率就越低,反之,接收端信噪比越低,误码率就会越高。

这个结果也符合正常规律。

8、改变由二径的时延差,从单位dt到20dt,分别对应误码率,画

出曲线。

%%%%%%%%%%%%%%%%系统误码率与多径时延大小之间的关系%%%%%%%%%%%%%%%%

%延时m*dt

m=0;

fortimes=1:

20

m=m+1;

t3=0:

dt(1/f*num/2+(m-1*dt;

s1=a1*[szeros(1,m];

s2=a2*[zeros(1,ms];

x=s1+s2;%二径引起的变化

x1=awgn(x,10%叠加高斯白噪声,信噪比SNR为10dB

[c,d]=butter(4,[w1,w2],’bandpass’;%4阶butterworth滤波器

x2=filter(c,d,x1;

x3=cos(2*pi*fc*t3.*x2;%乘以载波

x4=filter(p,q,x3;

x5=sin(2*pi*fc*t3.*x2;%乘以与之前正交的载波,解调另一半码元串

x6=filter(p,q,x5;

decoder_i=zeros(1,(num/2;%初始化奇

decoder_q=zeros(1,(num/2;%初始化偶

forg=1:

num/2

decoder_i(g=x4((n+(g-1*n;

end

forh=1:

num/2

decoder_q(h=x6((n+(h-1*n;

end%抽样后进行并串转换

decoder=zeros(1,num;

decoder(1:

2(num-1=decoder_i;

decoder(2:

2:

num=decoder_q;%把抽样得到的decoder转化为极性码,与原始的信号进行比较,求误码率

forij=1:

num

if(decoder(ij>0

decoder(ij=1;

else

decoder(ij=-1;

end

end%转换为极性码

correct_code=0;%正确接收的码元

forij=1:

num

if(decoder(ij==datanrz(ij

correct_code=correct_code+1;

end

end

mistake_code=num-correct_code;%误码

error_rate=mistake_code/num;%误码率

errorrate(times=error_rate;

end

figure(8

plot([1:

20],errorrate(1:

20;title(‘系统误码率与多径时延大小之间的关系’;

xlabel(‘多径时延’;ylabel(‘系统误码率’;

8

024681012

14161820

系统误码率与多径时延大小之间的关系

多径时延系统误码率

可以看出在一定的范围内随着时延的增加,误码率也在增加,但在时延继续增加会出现误码率变低,并且随着抽样率存在一定范围的周期性.

四、心得体会

通过本次matlab仿真QPSK调制通信系统,不但让我对matlab的掌握更深一步,学习了更多的函数;而且对QPSK调制有更加深入的了解,以及整个通信系统的结构。

在QPSK整个系统的设计过程中,让我认识到,要想更加深入的学习理解知识,就必须理论联系实际,提高自己动手编程能力。

 

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

当前位置:首页 > 医药卫生 > 中医中药

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

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