基MATLAB16QAM32QAM系统仿真
原理:
QAM种矢量调制输入特映射复面形成复数调制信号然I信号Q信号(实部虚部)分量采幅度调制分应调制相互正交两载波()图MQAM调制原理图
MQAM信号表达式:
述表达式出QAM两正交载波振幅相位调制结合波形矢量表示:
MQAM信号佳接收:
实验仿真条件:
码元数量设定10000基带信号频率1HZ抽样频率32HZ载波频率4HZ
实验结果分析:
QAM成两相互正交独立电ASK信号叠加成利电误码率分析方法M进制QAM误码率:
式中Eb码元量n0噪声单边功率谱密度
通调整高斯白噪声信道信噪SNR(EbNo)图示误码率图:
见16QAM32QAM信号误码率着信噪增逐渐减理趋势致存偏差
总结:
16QAM较32QAM解调误码率高数速率高16QAM般工作信噪环境误码率会等噪声条件16QAM抗噪声性相优越
附录代码:
main_plotm
clearclcecho offclose all
N10000 设定码元数量
fb1 基带信号频率
fs32 抽样频率
fc4 载波频率便观察已调信号载波频率设较低
Kbase2 Kbase1基带成形滤波直接调制
Kbase2基带成形滤波器滤波进行调制
inforandom_binary(N) 产生二进制信号序列
[yIQ]qam(infoKbasefsfbfc) 基带信号进行16QAM调制
y1y y2y 备份信号供续仿真
Tlength(info)fb
mfsfb
nnlength(info)
dt1fs
t0dtTdt
nlength(y)
yfft(y)n
yabs(y(1fix(n2)))*2
qfind(y<1e04)
y(q)1e04
y20*log10(y)
f1mn
f0f1(length(y)1)*f1
subplot(212)
plot(fy'b')
grid on
title('已调信号频谱') xlabel('ffb')
画出16QAM调制方式应星座图
constel(y1fsfbfc) title('星座图')
SNR_in_dB8224 AWGN信道信噪
for j1length(SNR_in_dB)
y_add_noiseawgn(y2SNR_in_dB(j)) 加入强度高斯白噪声
y_outputqamdet(y_add_noisefsfbfc) 已调信号进行解调
numoferr0
for i1N
if (y_output(i)~info(i))
numoferrnumoferr+1
end
end
Pe(j)numoferrN 统计误码率
end
figure
semilogy(SNR_in_dBPe'blue*')
grid on
xlabel('SNR in dB')
ylabel('Pe')
title('16QAM调制误码率')
bshapem
基带升余弦成形滤波器
function ybshape(xfsfbNalfadelay)
设置默认参数
if nargin<6 delay8 end
if nargin<5 alfa05 end
if nargin<4 N16 end
bfirrcos(Nfb2*alfa*fbfs)
yfilter(b1x)
four2twom
function xnfour2two(yn)
yyn yminmin(y) ymaxmax(y) ymaxmax([ymax abs(ymin)])
yminabs(ymax) yn(yymin)*3(ymaxymin)
设置门限电判决
I0find(yn< 05) yn(I0)zeros(size(I0))
I1find(yn>05 & yn<15) yn(I1)ones(size(I1))
I2find(yn>15 & yn<25) yn(I2)ones(size(I2))*2
I3find(yn>25) yn(I3)ones(size(I3))*3
位四进制码元转换两位二进制码元
T[0 00 11 11 0] nlength(yn)
for i1n
xn(i)T(yn(i)+1)
end
xnxn' xnxn() xnxn'
two2fourm
二进制转换成四进制
function [yyn]two2four(xm)
T[0 13 2] nlength(x) ii1
for i12n1
xix(ii+1)+1
yn(ii)T(xi(1)xi(2))
iiii+1
end
ynyn15 yyn
for i1m1
y[yyn]
end
yy()' 映射电分15050515
random_binarym
function [info]random_binary(N)
if nargin 0 果没输入参数指定信息序列10000码元
N10000
end
for i1N
temprand
if (temp<05)
info(i)0 12概率输出0
else
info(i)1 12概率输出1
end
end
qamdetm
QAM信号解调
function [xnx]qamdet(yfsfbfc)
dt1fs t0dt(length(y)1)*dt
Iy*cos(2*pi*fc*t)
Qy*sin(2*pi*fc*t)
[ba]butter(22*fbfs) 设计巴特沃斯滤波器
Ifiltfilt(baI)
Qfiltfilt(baQ)
m4*fsfb Nlength(y)m n(61N)*m nfix(n)
InI(n) QnQ(n) xnfour2two([In Qn])
I分量Q分量串转换终恢复成码元序列xn
nnlength(xn) xn[xn(1nn2)xn(nn2+1nn)]
xnxn() xnxn'
qamm
function [yIQ]qam(xKbasefsfbfc)
Tlength(x)fb mfsfb nnlength(x)
dt1fs t0dtTdt
串变换分离出I分量Q分量然分进行电映射
Ix(12nn1)
[IIn]two2four(I4*m)
Qx(22nn)
[QQn]two2four(Q4*m)
if Kbase2 基带成形滤波
Ibshape(Ifsfb4) Qbshape(Qfsfb4)
end
yI*cos(2*pi*fc*t)Q*sin(2*pi*fc*t)
32QAM
M 32
k log2(M)
x randint(200001)
y modulate(modemqammod('M'32'InputType''Bit')x)
EbNo 5110
for n1length(EbNo)
snr(n) EbNo(n) + 10*log10(k)
ynoisy awgn(ysnr(n)'measured')
zms demodulate(modemqamdemod('M'32'OutputType''Bit')ynoisy)
z de2bi(zms'leftmsb')
[nErrors(n) BITBER(n)] biterr(xz)
theo_err_prb(n)(1k)*32*erfc(sqrt(k*01*(10^(EbNo(n)10))))
end
disp (nErrors)
disp (BITBER)
semilogy(EbNoBITBER'b*'EbNotheo_err_prb'k*')
title('32QAM误特率性')
xlabel('EbN0(dB)')
ylabel('误特率')
legend('仿真误码率''理误码率')
文档香网(httpswwwxiangdangnet)户传
《香当网》用户分享的内容,不代表《香当网》观点或立场,请自行判断内容的真实性和可靠性!
该内容是文档的文本内容,更好的格式请下载文档