通信原理课程设计QPSK信号的调制解调.docx
- 文档编号:24159219
- 上传时间:2023-05-24
- 格式:DOCX
- 页数:15
- 大小:108.66KB
通信原理课程设计QPSK信号的调制解调.docx
《通信原理课程设计QPSK信号的调制解调.docx》由会员分享,可在线阅读,更多相关《通信原理课程设计QPSK信号的调制解调.docx(15页珍藏版)》请在冰豆网上搜索。
通信原理课程设计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
2、载波频率为1Mhz,为b点的波形(放大后)
figure
(2)
carrier=cos(2*pi*fc*t1) ;
plot(t1,carrier) ;title(‘fc=1Mhz的载波’) ;
2
3、将两路信号相加,得到发送端发送的信号,即c点波形(放大后)
s=idata1+qdata1 ;%将奇偶相加
figure(3)
plot(t1,s),title(‘调制信号,即是两路合并发送的信号’)
3
4、在信道中加入了高斯白噪声和由于二径时延信号的合成,直射波的幅度取0.7,反射波的幅度取0.3。
%%%%%%%%%%信道的二径与噪声之后接收到得信号x1%%%%%%%%%%%%%%%
a1=0.7 ;%直射波的衰减
a2=0.3 ;%反射波的衰减
%%%%%%%%%时延m*dt
s1=a1*[szeros(1,m)] ;
s2=a2*[zeros(1,m)s] ;
x=s1+s2 ;%二径引起的变化
x1=awgn(x,10)%叠加高斯白噪声,信噪比SNR为10dB
figure(4)
plot(t2,x1) ;title(‘在多径和高斯信道下的接收波形’)
4
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
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
%%%%%%%%%%%%%%%%%系统的误码率%%%%%%%%%%%%%%%
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)
decoder(ij)=1;
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为
。
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)
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(7)
plot([-19:
10],errorrate);title(‘系统的误码率与接收端信噪比SNR的关系’);
xlabel(‘接收端信噪比SNR/dB’) ;ylabel(‘系统的误码率’) ;
7
从图中可以直观的看出随着在无线信道中加入的高斯白噪声的大小(通过改变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,m)s] ;
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
可以看出在一定的范围内随着时延的增加,误码率也在增加,但在时延继续增加会出现误码率变低,并且随着抽样率存在一定范围的周期性.
四、心得体会
通过本次matlab仿真QPSK调制通信系统,不但让我对matlab的掌握更深一步,学习了更多的函数;而且对QPSK调制有更加深入的了解,以及整个通信系统的结构。
在QPSK整个系统的设计过程中,让我认识到,要想更加深入的学习理解知识,就必须理论联系实际,提高自己动手编程能力。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 通信 原理 课程设计 QPSK 信号 调制 解调