MQAM在瑞利信道下的性能仿真文档格式.docx
《MQAM在瑞利信道下的性能仿真文档格式.docx》由会员分享,可在线阅读,更多相关《MQAM在瑞利信道下的性能仿真文档格式.docx(10页珍藏版)》请在冰豆网上搜索。
MQAM的调制方式有两种:
正交调幅法和复合相移法。
本次仿真针对
16QAM,采用正交调幅法
3.1.2解调器
瑞利分布是一个均值为0,方差为c2的平稳窄带高斯过程,其包络的一维分布是瑞利分布。
瑞利分布是最常见的用于描述平坦衰落信号接收包络或独立多径分量接受包络统计时变特性的一种分布类型。
两个正交高斯噪声信号之和的包络服从瑞利分布。
把接收到的信号通过正交相干解调法解调,将接收的信号分成两路,一路与
coset相乘,另一路与sinCt相乘。
然后再经过低通滤波器来滤除掉乘法器产生出的高频分量,获得原先的信号。
低通滤波器输出可以通过抽样判决恢复出原电平信号。
然后再经过并/串变换得到原数据。
3.2调制、解调框图
正交调制原理框图
相干解调原理框图
3.3实现过程
331
clearall;
clc;
echooff;
closeall;
N=10000;
%设定码元数量
fb=1;
%基带信号频率
fs=32;
%抽样频率
fc=4;
%载波频率,为便于观察已调信号,我们把载波频率设的较低
Kbase=2;
%Kbase=1,不经基带成形滤波,直接调制;
Kbase=2,基带经成形滤波器滤波后,再进行调制
info=random_binary(N);
%产生二进制信号序列
[y,l,Q]=qam(info,Kbase,fs,fb,fc);
%对基带信号进行16QAM调制
y1=y;
y2=y;
%备份信号,供后续仿真用
T=length(info)/fb;
m=fs/fb;
nn=length(info);
dt=1/fs;
t=O:
dt:
T-dt;
subplot(211);
%便于观察,这里显示的已调信号及其频谱均为无噪声干扰的理想情况
%由于测试信号码元数量为10000个,在这里我们只显示其总数的1/10
plot(t(1:
1000),y(1:
1000),t(1:
1000),l(1:
1000),Q(
1:
1000),[035],[00],'
b:
'
);
title('
已调信号(In:
red,Qn:
green)'
);
%傅里叶变换,求出已调信号的频谱
n=length(y);
y=fft(y)/n;
y=abs(y(1:
fix(n/2)))*2;
q=find(y<
1e-04);
y(q)=1e-04;
y=20*log10(y);
f1=m/n;
f=0:
f1:
(length(y)-1)*f1;
subplot(223);
plot(f,y,'
r'
gridon;
title('
已调信号频谱'
xlabel('
f/fb'
%画出16QAM调制方式对应的星座图
subplot(224);
constel(y1,fs,fb,fc);
星座图'
SNR_in_dB=8:
2:
24;
%AWG信道信噪比
forj=1:
length(SNR_in_dB)
y_add_noise=awgn(y2,SNR」n_dB(j));
%加入不同强度的高斯白噪声
y_output=qamdet(y_add_noise,fs,fb,fc);
%对已调信号进行解调
numoferr=0;
end;
fori=1:
N
if(y_output(i)~=info(i)),
numoferr=numoferr+1;
end;
Pe(j)=numoferr/N;
%统计误码率end;
figure;
semilogy(SNR_in_dB,Pe,'
red-'
SNRindB'
ylabel('
Pe'
16QAM调制在不同信道噪声强度下的误码率’);
332
%QAM_BER.m
functionvarargout=QAM_BER(SNRs)
%AWG信道的误码率
y=10.A(SNRs/10);
BER=zeros(2,length(SNRs));
figurel=figure;
*(2人(k-1)
forb=[4]%b=偶数;
M=16,64,256……
floor(i*2A(k-1)/l+1/2))...
*erfc((2*i+1)*sqrt(3*log2(I*J)*y/(IA2+JA2-2)));
end
Pl_k=Pl_k/I;
PI=PI+Pl_k;
forl=1:
log2(J)
PJ_l=zeros(size(y));
forj=0:
(1-2:
A(-l))*J-1
PJ_l=PJ_l+(-1)A(floor(j*2A(l-l)/j))*(2A(l-l)
floor(j*2A(l-1)/J+1/2))...
*erfc((2*j+1)*sqrt(3*log2(l*J)*y/(|A2+JA2-2)));
PJ_l=PJ_l/J;
PJ=PJ+PJ_l;
BER(b-1,:
)=(PI+PJ)/log2(I*J);
%Plottheresults
line_h=semilogy(SNRs,BER);
gridon
ylim([1e-0061]);
xlim([min(SNRs)max(SNRs)]);
%zys_2.m
clc
closeall
clearall
SNRs=-4:
28;
disp('
Plottheoreticalcurves'
)
[h_fig,h_lines]=QAM_BER_Curves(SNRs);
disp('
RunMonteCarloSimulations'
%Createplace-holderplots
QAM_BER=zeros(2,length(SNRs));
holdon
simLines=semilogy(SNRs,QAM_BER,'
*'
3.3.3
M=16;
%16QAM言号k=log2(M);
n=3e4;
x=randint(n,1);
xsym=bi2de(reshape(x,k,length(x)/k).'
'
left-msb'
y=qammod(xsym,M);
ytx=y;
EbNo=-5:
0.5:
10;
length(EbNo)%加噪声
snr=(i-1)*0.5-5+10*log10(k);
ynoisy=awgn(ytx,snr,'
measured'
%高斯白噪声
yrx=ynoisy;
zsym=qamdemod(yrx,M);
%16qam调制
z=de2bi(zsym,'
z=reshape(z.'
prod(size(z)),1);
[number(i),Pe(i)]=biterr(x,z);
%误码率分析
pelilun=(1/k)*3/2*erfc(sqrt(k*0.1*(10.A(EbNo/10))));
%理论误码率
semilogy(EbNo,Pe,'
bs-'
'
LineWidth'
1);
%仿真误码率作图
holdon;
semilogy(EbNo,pelilun,'
ms-'
LineWidth'
%理论误码率作图
legend('
仿真16QAM误码率'
'
•理论16QAM误码率'
%标注
SNNR/dB'
ylabel('
误码率Pe'
16QAM误码率分析'
4、结论
由3.3.1仿真:
□Br
□B
04-
□2
%0103D4OE07DB09
06
已调信号频谱
由3.3.2仿真得:
M巴6
M
ii
00
□
o
电
■
■1
M=32
10°
10-1
TTlTTiflTTWTTlzTzTTTT
r
050h20
10
10-2
1Q
r!
==!
!
h=^==n==^==H==e==£
h==e===n=h==!
M=8,16
10^
3.3.3仿真得:
16QAM误码率分析
:
二二二;
…一S—仿真160AMK码率
―匸—理i^16QAM误码率
332通过改变程序:
“forb=[3]
M=2Ab;
”
中b的值,可得MQAM误码率理论值和仿真图像。
仿真图像列出
8QAM,16QAM,32QAM的误码率图像。
通过仿真和图像得:
1.)经过调制后,映射电平有四种,分别为-1.5;
0.5;
0.5;
1.5
2.)已调信号频谱主要集中在4fb
3.)进制数越大,调制产生误码率越大
4.)16QAM理论图像与仿真图像基本相符。