调制解调作业文档格式.docx
《调制解调作业文档格式.docx》由会员分享,可在线阅读,更多相关《调制解调作业文档格式.docx(23页珍藏版)》请在冰豆网上搜索。
解调器根据星座图及接收到的载波信号的相位来判断发送端发送的信息比特。
(b)误比特率为1e-2、1e-3及1e-4时的Eb/N0分别是多少?
BPSK
QPSK
1e-2
4.35
4.35
1e-3
6.79
1e-4
8.40
(c)从物理意义上说明为什么bpsk、qpsk误比特率曲线是重叠的
因为bpsk是双极性信号,成对出错概率为
=
对等概率发送的二进制信号,成对出错率等于符号错误概率,也等于误比特率。
Qpsk是那双正交信号,用相干接收机接收,成对错误概率为
==
由联合边界计算的误码率是成对错误概率的两倍,误比特率是误码率的一半
(d)当samples减少为100000,10000,1000时观察误比特率曲线的变化,你得出什么结论。
1e6个点1e5个点1e4个点1e3个点
结论,取样点越少,在同等信噪比下误码率越大。
取样点越多,曲线越光滑。
2.用matlab运行“bpsk.m”、“qpsk.m”
(a)在各程序中标注“注释”处加上注释(英文或中文)
BPSK.m
data1=rand(1,nd)>
0.5;
%注释返回一组行向量,nd个码元
%******************AttenuationCalculation*****************
code_rate=1;
E=1;
sigma=E/sqrt(2*SNR*code_rate);
%注释:
计算编码后高斯分布随机变量标准差
fori=1:
nd
if(data1(i)==0),
data4(i)=-E+Gngauss(sigma);
%注释:
传0码时加入高斯分布白噪声干扰,双极性码
else
data4(i)=E+Gngauss(sigma);
传1码时加入高斯分布白噪声干扰,双极性码
end;
%********************BPSKDemodulation*********************
demodata1=data4>
0;
%注释:
data4中每个元素和0比较,比较结果为真
(1)和假(0),然后再将这些0,1赋值给demodata1
%********************BitErrorRate(BER)******************
noe2=sum(abs(data1-demodata1));
计算误码个数
nod2=length(data1);
计算总码数
noe=noe+noe2;
nod=nod+nod2;
end
%**********************Outputresult***************************
ber(snr_num)=noe/nod%注释:
计算误码率,误码除以总传递码数
QPSK.m
SNR=exp(snr_in_dB(snr_num)*log(10)/10%注释:
计算信噪比
foriii=1:
nloop
%***************************Datageneration********************************
data=rand(1,nd*ml)>
生成同相分量
data1=2*data-1%注释:
原始数据流分成两部分,此为正交分量
%***************************QPSKModulation********************************
[tout]=qpskmod(data1,1,nd,ml);
%****************************AttenuationCalculation***********************
%****************************gngausschannel***********************
E=1/sqrt
(2);
sigma=E/sqrt(2*SNR*code_rate)%注释:
fori=1:
nd,
[gsrv1,gsrv2]=Gngauss(sigma);
tout(i)=tout(i)+gsrv1+j*gsrv2;
%sigma=E/sqrt(2*SNR*code_rate);
%n=1/sqrt
(2)*[randn(1,nd)+j*randn(1,nd)];
%sigma.*n%注释:
另一种高斯白噪声产生方法
%****************************QPSKDemodulation*****************************
[demodata]=qpskdemod(tout,1,nd,ml);
demodata1=demodata>
与原始码元对比判决,得到正确的码元数
demodata=demodata1;
%**************************BitErrorRate(BER)****************************
noe2=sum(abs(data-demodata));
计算错误码元数
nod2=length(data1);
总码元数
noe=noe+noe2;
nod=nod+nod2;
ber(snr_num)=noe/nod;
计算误码率
end;
isi=isi+2.^(m2-ii).*paradata2((1:
para),ii+count2);
产生同相分量
isq=isq+2.^(m2-ii).*paradata2((1:
para),m2+ii+count2);
产生正交分量
(b)说明加性高斯白噪声的产生方法,请再给出一种加性高斯白噪声的产生方法,并验证其正确性。
原始方法为Gngauss.m
ifnargin==0,
m=0;
sgma=1;
elseifnargin==1,
sgma=m;
u=rand;
%auniformrandomvariablein(0,1)
z=sgma*(sqrt(2*log(1/(1-u))));
%aRayleighdistributedrandomvariable
%anotheruniformrandomvariablein(0,1)
gsrv1=m+z*cos(2*pi*u);
gsrv2=m+z*sin(2*pi*u);
nargin为输入变量的个数,如果nargin为零,即空号,产生均值为0,标准差为1的高斯分布系列。
如果传号,产生均值为0,方差为m的随机序列。
另一种方法:
y=awgn(m,n,p)产生一个m行n列的高斯白噪声的矩阵,p以dBW为单位指定输出噪声的强度。
但与实际差距较大。
data2=2*data1-1;
data4=awgn(data2,snr_in_dB(snr_num))
(c)参考“bpskqpsk125.m”的画图功能,给出Eb/N0---误比特率曲线和高斯信道下的理论误比特率曲线。
BPSK误比特率曲线和高斯信道下的理论误比特率曲线
QPSK误比特率曲线和高斯信道下的理论误比特率曲线
clearall
%qpsk.m
%SimulationprogramtorealizeQPSKtransmissionsystem
%********************Preparationpart%*************************************
ml=2;
sr=25600;
%ml:
Numberofmodulationlevels(BPSK:
ml=1,QPSK:
ml=2,16QAM:
ml=4)
br=sr.*ml;
%Bitrate
nd=100;
%Numberofsymbolsthatsimulatesineachloop
snr_in_dB=[0:
18]
ber=zeros(1,length(snr_in_dB));
forsnr_num=1:
length(snr_in_dB)
SNR=exp(snr_in_dB(snr_num)*log(10)/10);
将SNR(dB)转化为倍数
%********************STARTCALCULATION*************************************
nloop=100;
%Numberofsimulationloops
noe=0;
%Numberoferrordata
nod=0;
%Numberoftransmitteddata
随机产生相应数目的0-1信号
将单极性0-1信号转化为双极性的-1,1信号
sigma=E