11211181调制解调.docx
- 文档编号:11345119
- 上传时间:2023-05-31
- 格式:DOCX
- 页数:27
- 大小:276.73KB
11211181调制解调.docx
《11211181调制解调.docx》由会员分享,可在线阅读,更多相关《11211181调制解调.docx(27页珍藏版)》请在冰点文库上搜索。
11211181调制解调
无线仿真实验
姓名:
学号:
班级:
通信班任课教师:
第一部分:
调制解调
题目
现给出bpsk、qpsk及“书上习题”的调制解调程序,理解各程序,完成以下习题。
将程序运行结果及各题目的解答写入word中:
1.用matlab运行书上习题中的“bpskqpsk125.m”
(a)说明bpsk、qpsk解调判决方法
(b)误比特率为1e-2、1e-3及1e-4时的Eb/N0分别是多少?
(c)从物理意义上说明为什么bpsk、qpsk误比特率曲线是重叠的
(d)当samples减少为100000,10000,1000时观察误比特率曲线的变化,你得出什么结论。
解答:
运行该程序,可以得到下图(图一):
图一
(a)说明bpsk、qpsk解调判决方法
从源程序中我们可以看出:
当进行bpsk解调判决的时候有这段程序:
%ifa(zeromean)noisesampleislargerthansqrt(Eb)
%awrongdecsionismade
也就是说当一个噪声抽样点的能量大于信号的一个符号能量的时候就会做出错误的判决。
当进行qpsk解调判决时有这样一段程序:
%acorerectdecisionismadeiftheconstellationpointangle
%iswithinpi/4ang-pi/4.
只要星座角全部在判决在π/4和-π/4之间,那么我们就可以正确进行解调。
(b)误比特率为1e-2、1e-3及1e-4时的Eb/N0分别是多少?
将光标分别放在纵坐标分别为0.01,0.001,0.0001处,观察所对应的纵坐标的数值:
当误比特率=0.01,如图二,此时信噪比为4.3dB;
图二
当误比特率=0.001,如图三,此时信噪比为6.8dB;
图三
当误比特率=0.0001,如图四,信噪比为8.3dB;
(c)从物理意义上说明为什么bpsk、qpsk误比特率曲线是重叠的
我们知道qpsk是由两个正交的bpsk组成的,而且这两路正交的bpsk相互独立,因此qpsk与bpsk之间的误比特率是相等的。
(d)当samples减少为100000,10000,1000时观察误比特率曲线的变化,你得出什么结论。
将抽样点缩小为100000,10000,1000时,分别得到如下图形:
图四
Sample=100000,如图五
图五
Sample=10000,如图六
图六
Sample=1000,如图七
图七
结论:
从以上的图形可以看出,对于当抽样点=1000000,此时误码率在10-4之前都与理想的曲线基本相吻合;当抽样点=100000时,基本没有变换;当抽样点=10000时,误码率只能在10-2之前能够与李响曲线相吻合,当抽样点=1000时,误码率在10-1以前才能和理想曲线相吻合。
有以上得出结论,要想得到与李响曲线相吻合的误码率=10-n曲线,抽样点至少=10n+2;
2..用matlab运行“bpsk.m”、“qpsk.m”
(a)在各程序中标注“注释”处加上注释(英文或中文)
(b)说明加性高斯白噪声的产生方法,请再给出一种加性高斯白噪声的产生方法,并验证其正确性。
(c)参考“bpskqpsk125.m”的画图功能,给出Eb/N0---误比特率曲线和高斯信道下的理论误比特率曲线。
(d)观察nd及nloop参数变化时,曲线的现象,并说明原因。
(e)画出不同信噪比条件下的的星座图,解释其对误码率的影响。
(f)通过程序画出QPSK和BPSK的Eb/N0---误比特率曲线,观察曲线的现象,能得出什么结论。
解答:
(a)
bpsk.m
data1=rand(1,nd)>0.5;%码源,由rand函数生成1行nd列随机数,随机数均为0会1;
demodata1=data4>0;%解调:
data4>0,则demodata1=1;data4<0,则demodatal=0;
noe2=sum(abs(data1-demodata1));%误码的总数
nod2=length(data1);%由length函数得到datal的长度,即码源的个数
ber(snr_num)=noe/nod%误码率
qpsk.m
data=rand(1,nd*ml)>0.5;%码源,由rand函数生成1行nd*ml列随机数,随机数均为0或1
data1=2*data-1%将data中0变成“-1”
sigma=E/sqrt(2*SNR*code_rate);%sigma:
standarddeviationofnoise
demodata1=demodata>0;%解调:
demodata>0,则demodata=1;demodata<0,则demodata=0
noe2=sum(abs(data-demodata));%误码的总数
nod2=length(data1);%由length函数的出datal的长度,即码源的个数
ber(snr_num)=noe/nod;%误码率
qpskmod
%paradata:
注释未调制的信号
%iout:
注释:
调制后的I路信号
%qout:
注释:
调制后的Q路信号
isi=isi+2.^(m2-ii).*paradata2((1:
para),ii+count2);%注释:
将I路信号取出
isq=isq+2.^(m2-ii).*paradata2((1:
para),m2+ii+count2);%注释:
将Q路信号取出
tout((1:
para),jj)=isi/sqrt
(2)+j*(isq/sqrt
(2));%注释:
能量归一化
qpskdemod
%idata:
注释:
I路调制信号
%qdata:
注释:
Q路调制信号
%demodata:
注释:
解调后的信号
demodata=zeros(para,ml*nd);%注释:
demodata生成一个1*200的矩阵,用来放解调后的信号
demodata((1:
para),(1:
ml:
ml*nd-1))=ich((1:
para),(1:
nd));%注释:
解调I路信号
demodata((1:
para),(2:
ml:
ml*nd))=qch((1:
para),(1:
nd));%注释:
解调Q路信号
(b)
高斯噪声的产生方法:
定义高斯函数是由m和sgma产生两个独立的高斯变量,如果m和sgma均未给出,则产生标准高斯变量;如果只有一个输入值,则均值为0,标准方差为给定参数。
另一种产生高斯白噪声的方法:
AWGN=randn(length(snr_in_dB),nd);
N0(snr_num)=I/(10^(snr_in_Db(snr_num)/10));
AWGN(snr_num,:
)=sqrt(N0(snr_num)/2).*AWGN(snr_num,:
)
直接产生高斯噪声,比较简单
(c)参考“bpskqpsk125.m”的画图功能,给出Eb/N0---误比特率曲线和高斯信道下的理论误比特率曲线。
Bpsk
figure;
semilogy(snr_in_dB,ber,'O');
holdon;
semilogy(snr_in_dB,0.5*erfc(sqrt(2*10.^(snr_in_dB/10))/sqrt
(2)),'+');
ylabel('BER');
xlabel('E_b/N_0[dB]');
legend('simulationBPSK','theorygngaussBPSK');
运行后如图八
图八
Qpsk
figure;
semilogy(snr_in_dB,ber,'O');
holdon;
semilogy(snr_in_dB,0.5*erfc(sqrt(2*10.^(snr_in_dB/10))/sqrt
(2)),'+');
ylabel('BER');
xlabel('E_b/N_0[dB]');
legend('simulationQPSK','theorygngaussQPSK');
如图九
图九
(d)观察nd及nloop参数变化时,曲线的现象,并说明原因。
以qpsk为例,当改变nd和nloop的值得时候观察以下图形:
nd=100,nloop=100nd=1000,nloop=100
Nd=100,nloop=1000nd=10,nloop=10
我们从以上几张图可以观察到,当nd或者nloop的值很大的时候,Eb/N0---误比特率曲线很平滑,随着nd或者nloop的增大,曲线越来与平滑,可以更好地显示信噪比与误比特率之间的关系;而当nd或者nloop的值比较小的时候,曲线有些部分会变得接近于折线,不能很好地显示误比特率与信噪比之间的关系。
(e)画出不同信噪比条件下的的星座图,解释其对误码率的影响。
QPSK:
SNR=5dB
SNR=10dB
SNR=15dB
SNR=20dB
BPSK:
SNR=5dB
SNR=10dB
SNR=15dB
SNR=20dB
从以上图形我们可以观察到随着信噪比的增大,星座图与理想的星座图之间越来越接近,可见随着信噪比的增加,误码率也会随着下降。
(f)通过程序画出QPSK和BPSK的Eb/N0---误比特率曲线,观察曲线的现象,能得出什么结论。
解答:
运行“bpskqpsk125.m”,修改显示程序:
figure;
semilogy(snr_dB,result_antip,'-');
holdon;
semilogy(snr_dB,result_QPSK,'+');
ylabel('BER');
xlabel('E_b/N_0[dB]');
legend('SimBPSK','SimQPSK');
得到如图
我们看到,当信噪比小于8dB的时候,bpsk与qpsk之间的误码率基本相同,但是当信噪比大于8dB的时候,qpsk的误码率明显低于bpsk,这说明当信噪比比较大时,qpsk的调制性能比bpsk的好的多。
3.若信源是你的学号,结合程序说明其在qpsk(调制mod)和(解调demod)子程序中的具体实现过程。
首先对学号11211181进行编码,编为00010001001000010001000110000001,然后转换为-1,1;
经过qpsk时,
//forjj=1:
nd
isi=zeros(para,1);
isq=zeros(para,1);
forii=1:
m2
isi=isi+2.^(m2-ii).*paradata2((1:
para),ii+count2);isq=isq+2.^(m2-ii).*paradata2((1:
para),m2+ii+count2);end
tout((1:
para),jj)=isi/sqrt
(2)+j*(isq/sqrt
(2));
count2=count2+ml;
end//
首先生成两个寄存器isi和isq,用来存放I路和Q路信号,因为qpsk是二元调制,实用技术其count2用来控制未调制信号中一次取出2个信号,然后进行调制,调制按下图进行,11编为【1/sqrt
(2),1/sqrt
(2)】,10编写为【1/sqrt
(2),-1/sqrt
(2)】,01编写为【-1/sqrt
(2),1/sqrt
(2)】,00编写为【-1/sqrt
(2),-1/sqrt
(2)】
解调时先生成一个1*ml*nd的零矩阵,同来存放解调后的信号,将I路和Q路信号按解调前的顺序放入demodata中,即如下:
Demodata:
idata
(1)qdata
(1)idata
(2)qdata
(2)...idata(100)qdata(100),然后在qpsk.m中,令demodata1=demodata>0;将解调信号转换成0、1信号,从而实现整个qpsk的调制解调过程。
demodata=zeros(para,ml*nd);
demodata((1:
para),(1:
ml:
ml*nd-1))=ich((1:
para),(1:
nd));
demodata((1:
para),(2:
ml:
ml*nd))=qch((1:
para),(1:
nd));
4.针对题目2中的BPSK、QPSK,
(a)若信道使信号幅度呈瑞利衰落,画出Eb/N0---误比特率曲线和瑞利衰落下的理论误比特率曲线,说明与题目2观察结果的异同,并说明原因。
(b)若信道使信号幅度呈莱斯衰落,更改K值的大小,画出Eb/N0---误比特率曲线、瑞利衰落下的理论误比特率曲线和高斯信道下的理论误比特率曲线,观察曲线的现象,能得出什么结论。
解答:
(a)若信道使信号幅度呈瑞利衰落,画出Eb/N0---误比特率曲线和瑞利衰落下的理论误比特率曲线,说明与题目2观察结果的异同,并说明原因。
首先将bpsk.m文件中的高斯信道特性改成瑞利信道特性,具体的程序修改如下:
data1=rand(1,nd)>0.5;%码源,由rand函数生成1行nd列随机数,随机数均为0会1;
data2=2.*data1-1;
%******************AttenuationCalculation*****************
code_rate=1;
E=1;
sigma=E/sqrt(SNR*code_rate);%sigma:
standarddeviationofnoise;
n=1/sqrt
(2)*[randn(1,nd)+1i*randn(1,nd)];
h=1/sqrt
(2)*[randn(1,nd)+1i*randn(1,nd)];
data4=data2.*h+sigma.*n;
data4=data4./h;
然后在程序的后面输入显示程序:
figure;
semilogy(snr_in_dB,ber,'O')
holdon;
semilogy(snr_in_dB,0.5*erfc(sqrt(2*10.^(snr_in_dB/10))/sqrt
(2)),'+');
holdon;
semilogy(snr_in_dB,0.5.*(1-sqrt((10.^(snr_in_dB/10))./(10.^(snr_in_dB/10)+1))),'-');
ylabel('BER');
xlabel('E_b/N_0[dB]');
legend('simulationBPSK','theorygngaussBPSK','theorreyleigh');
得到下图:
同理,我们可以得到qpsk的曲线为:
由以上两个曲线我们可以观察到在高斯信道里BPSK和QPSK的误比特率都比在瑞利信道的小的多,也就是说在高斯信道的调制效果更好。
(b)若信道使信号幅度呈莱斯衰落,更改K值的大小,画出Eb/N0---误比特率曲线、瑞利衰落下的理论误比特率曲线和高斯信道下的理论误比特率曲线,观察曲线的现象,能得出什么结论。
莱斯分布中的k代表了直射分量和散射分量,当k=0的时候没有主导分量,接近于瑞利分布;当k很大的时候,含有主导分量,服从莱斯分布。
BPSK:
K=O,
K=5
K=15
当k=0的时候。
莱斯分布的误比特率曲线接近瑞利分布,当k从5到15的过程,我们可以观察到到莱斯分布慢慢的接近高斯分布,这说明,当k特别大的时候,赖斯分布服从高斯分布。
Qpsk
K=0
K=5
K=15
我们从以上三个图形可以得到与bpsk相同的结论。
第二部分:
分集
题目:
现给出最大比合并(MRC)、等增益合并(EGC)和选择性合并的分集合并程序,理解各程序,完成以下习题。
将程序运行结果及各题目的解答写入word中:
1.用matlab分别运行“BPSKMRC.m”、“BPSKEGC.m”以及“BPSKSEL.m”
(a)在程序中标注“注释”处加上注释(英文或中文)
(b)观察信噪比变化10dB,误比特率变化多少?
(c)程序中给出的是2分集,将其换为3分集,观察信噪比变化10dB,误比特率变化多少?
(d)将最大比合并和等增益合并及选择式合并的误比特率曲线,画在一张图上,比较这三种合并方法的优劣。
解答:
BPSKMRC.m程序运行结果:
BPSKEGC.m程序运行结果:
BPSKSEL.m运行结果:
(a)在程序中标注“注释”处加上注释(英文或中文)
BPSKMRC.m
h11=conj(h1);%注释:
取共轭,计算相应天线的权重
data411=data41.*h11;%注释:
对天线加权
data4=data411+data422;%注释:
进行合并
BPSKEGC.m
h11=conj(h1)./abs(h1);%注释:
计算等增益合并的天线增益
data411=data41.*h11;%注释:
进行加权
data4=data411+data422;%注释:
进行合并
BPSKSEL.m
H1=1/sqrt
(2)*[rand+1j*rand];%注释:
生成一个瑞利衰落的因子
H2=1/sqrt
(2)*[rand+1j*rand];%注释:
再生成一个瑞利衰落的因子
y1=H
(1)*data(i)+sigma*(rand+1j*rand);%注释:
将信号加到瑞利衰落信道中
y2=H
(2)*data(i)+sigma*(rand+1j*rand);%注释:
将信号加到瑞利衰落信道中
s=max(y);%注释:
取出最大的信号
if(s==abs(y2))
s=y2/H2;%注释:
均衡
else
s=y1/H1;%注释:
均衡
end
if(data2~=data(i))
numofber=numofber+1;%注释:
若传输有误,则误码数加一
end
p(k)=numofber/(N*totolnumber);%注释:
计算误码率
(b)观察信噪比变化10dB,误比特率变化多少?
从图上看来,信噪比每增大10dB,误码率会下降为原先的百分之1
(c)程序中给出的是2分集,将其换为3分集,观察信噪比变化10dB,误比特率变化多少?
以最大比值合并为例,依照原来的程序修改而写成3分集的程序“BPSKMRC_3.m”(源代码见作业文件夹),程序运行结果如下:
从仿真结果来看,采用三分集的MRC,信噪比每提高10dB,误码率会下降为大约原先误码率的9‰.
(d)将最大比合并和等增益合并及选择式合并的误比特率曲线,画在一张图上,比较这三种合并方法的优劣。
将原先程序组合成新程序“BPSK_Diversity.m”,程序运行结果如下:
可以看到,与瑞利信道相比,三种合并的方式都取得了一定的成效,但是三者相互比较之下,最大比值合并的性能略胜一筹,而选择性合并性能是三者中的最差的。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 11211181 调制 解调