16qam调制和解调matlab,16QAM调制解调(MATLAB)

  • Post author:
  • Post category:其他

《16QAM调制解调(MATLAB)》由会员分享,可在线阅读,更多相关《16QAM调制解调(MATLAB)(9页珍藏版)》请在人人文库网上搜索。

1、题目:基于MATLAB的16QAM及32QAM系统的仿真原理:QAM是一种矢量调制,将输入比特映射到一个复平面,形成复数调制信号,然后将I信号和Q信号(实部虚部)分量采用幅度调制,分别对应调制在相互正交的两个载波(,)上。下图为MQAM的调制原理图。MQAM的信号表达式:上述表达式可以看出,QAM为两个正交载波振幅相位调制的结合。波形矢量可以表示为:MQAM信号最佳接收:实验仿真条件:码元数量设定为10000个,基带信号频率1HZ,抽样频率32HZ,载波频率4HZ。实验结果分析:对于QAM,可以看成是由两个相互正交且独立的多电平ASK信号叠加而成。因此,利用多电平误码率的分析方法,可得到M进制。

2、QAM的误码率为:式中,Eb为每码元能量,n0为噪声单边功率谱密度。通过调整高斯白噪声信道的信噪比SNR(Eb/No),可以得到如图所示的误码率图:可见16QAM和32QAM信号的误码率随着信噪比的增大而逐渐减小,这与理论趋势是一致的,但是存在偏差。总结:与16QAM比较,32QAM解调的误码率高,但数据速率高。16QAM一般工作在大信噪比环境下,误码率会很小,在同等噪声条件下,16QAM的抗噪声性能是相当优越的。附录代码:main_plot.mclear;clc;echo off;close all;N=10000; %设定码元数量fb=1; %基带信号频率fs=32; %抽样频率fc=4;。

3、 %载波频率,为便于观察已调信号,我们把载波频率设的较低Kbase=2; % Kbase=1,不经基带成形滤波,直接调制; % Kbase=2,基带经成形滤波器滤波后,再进行调制info=random_binary(N); %产生二进制信号序列y,I,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=0:dt:T-dt; n=length(y); y=fft(y)/n; y=abs(y(1:fix(n/2。

4、)*2;q=find(y=0.5 & yn=1.5 & yn=2.5); yn(I3)=ones(size(I3)*3;%一位四进制码元转换为两位二进制码元T=0 0;0 1;1 1;1 0;n=length(yn); for i=1:n;xn(i,:)=T(yn(i)+1,:);end; xn=xn; xn=xn(:); xn=xn;two2four.m%二进制转换成四进制function y,yn=two2four(x,m);T=0 1;3 2; n=length(x); ii=1;for i=1:2:n-1;xi=x(i:i+1)+1; yn(ii)=T(xi(1),xi(2); ii=。

5、ii+1;end;yn=yn-1.5; y=yn; for i=1:m-1;y=y;yn;end;y=y(:); %映射电平分别为-1.5;0.5;0.5;1.5random_binary.mfunction info=random_binary(N)if nargin = 0, %如果没有输入参数,则指定信息序列为10000个码元N=10000;end;for i=1:N,temp=rand; if (temp0.5),info(i)=0; % 1/2的概率输出为0elseinfo(i)=1; % 1/2的概率输出为1endend;qamdet.m%QAM信号解调function xn,x=。

6、qamdet(y,fs,fb,fc);dt=1/fs; t=0:dt:(length(y)-1)*dt;I=y.*cos(2*pi*fc*t); Q=-y.*sin(2*pi*fc*t);b,a=butter(2,2*fb/fs); %设计巴特沃斯滤波器I=filtfilt(b,a,I);Q=filtfilt(b,a,Q);m=4*fs/fb;N=length(y)/m; n=(.6:1:N)*m; n=fix(n);In=I(n); Qn=Q(n); xn=four2two(In Qn); %I分量Q分量并/串转换,最终恢复成码元序列xnnn=length(xn); xn=xn(1:nn/2。

7、);xn(nn/2+1:nn); xn=xn(:); xn=xn;qam.mfunction y,I,Q=qam(x,Kbase,fs,fb,fc);%T=length(x)/fb; m=fs/fb;nn=length(x);dt=1/fs; t=0:dt:T-dt;%串/并变换分离出I分量、Q分量,然后再分别进行电平映射I=x(1:2:nn-1); I,In=two2four(I,4*m);Q=x(2:2:nn); Q,Qn=two2four(Q,4*m); if Kbase=2; %基带成形滤波I=bshape(I,fs,fb/4); Q=bshape(Q,fs,fb/4); end; y。

8、=I.*cos(2*pi*fc*t)-Q.*sin(2*pi*fc*t); 32QAMM = 32; k = log2(M); x = randint(20000,1); y = modulate(modem.qammod(M,32,InputType,Bit),x); EbNo = -5:1:10; for n=1:length(EbNo) snr(n) = EbNo(n) + 10*log10(k); ynoisy = awgn(y,snr(n),measured); zms = demodulate(modem.qamdemod(M,32,OutputType,Bit),ynoisy); z = de2bi(zms,left-msb);nErrors(n), BITBER(n) = biterr(x,z); theo_err_prb(n)=(1/k)*3/2*erfc(sqrt(k*0.1*(10.(EbNo(n)/10); end disp (nErrors); disp (BITBER); semilogy(EbNo,BITBER,b*-,EbNo,theo_err_prb,k*-); title(32QAM误比特率性能); xlabel(Eb/N0(dB); ylabel(误比特率); legend(仿真误码率,理论误码率);。