16QAM_星形和矩形星座图调制解调MATLAB代码_第1页
16QAM_星形和矩形星座图调制解调MATLAB代码_第2页
16QAM_星形和矩形星座图调制解调MATLAB代码_第3页
16QAM_星形和矩形星座图调制解调MATLAB代码_第4页
16QAM_星形和矩形星座图调制解调MATLAB代码_第5页
已阅读5页,还剩2页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、%软件无线电课程设计%方形、星形16QAM调制解调仿真% %主程序clcclear%码元速率250M%滤波器采样率%载波频率2.5G%对载波采样%数据长度%定义参数 fd=250*10A6;fs=2500*10A6; fc=2500*10A6;f=10000*10A6; data_le n=200000;symen=data_len/4; %码元序列长度M_QAM=16;%QAM 数k=log2(M_QAM);SNR=1:12;%白噪声信噪比,%方形16QAM调制%星形16QAM调制bit_tx=randint(1,data_len);% 产生随机序列 echo off;rec_qam16=Q

2、amMod(bit_tx,16); star_qam16=SrarQamMod(bit_tx);base_rec=base_shape(fd,fs,f,rec_qam16); % 基带成型滤波 base_star=base_shape(fd,fs,f,star_qam16); % 基带成型滤波for i=1:le ngth(SNR)SNR_=i%信噪比从1dB到12dB计算误码率%方形映射16QAM rf_rec_qam16=CarrierMod(fc,f,base_rec);% 载波调制rf_rec_qam16_ n=awg n( rf_rec_qam16,SNR(i),'measu

3、red');% 加噪声rec_qam16_rx base_rec_rx=CarrierDemod(fd,fs,fc,f,rf_rec_qam16_ n);% 载波解调bit_rec_rx=QamDemod(rec_qam16_rx,16);%MQAM 解调nu m_qam16,perr_qam16_rec(i)=biterr(bit_tx,bit_rec_rx);%误码率qam16_data_rec(i,:)=rec_qam16_rx;%scatterplot(rec_qam16_rx);%星形映射16QAMrf_star_qam16=CarrierMod(fc,f,base_star

4、);% 载波调制rf_star_qam16_n=awg n(rf_star_qam16,SNR(i),'measured');% 加噪声star_qam16_rx base_star_rx=CarrierDemod(fd,fs,fc,f,rf_star_qam16_n);% 载波解调bit_star_rx=StarQamDemod(star_qam16_rx);%MQAM 解调num _qam16,perr_qam16_star(i)=biterr(bit_tx,bit_star_rx);% 误码率 qam16_data_star(i,:)=star_qam16_rx;%sca

5、tterplot(star_qam16_rx);end%理论误码率计算SNRtheo=0:0.1:le ngth(SNR);for i=1:le ngth(SNRtheo)SNRdec=104(SNRtheo(i)/10); theo_perr_qam16(i)=(3/8)*erfc(sqrt(SNRdec*2/5);end%基带波形N=200;n=1:N;t=1:N*10;%发送端波形figure;stem(n,bit_tx(n);title('发送序列');%发送序列figure('Name','发送端基带信号');subplot(411);

6、plot(t,real(base_rec(t);title('方形映射-Q 路');subplot(412);plot(t,imag(base_rec(t); title('方形映射-I 路');subplot(413);plot(t,real(base_star(t);title('星形映射-Q 路');subplot(414);plot(t,imag(base_star(t); title('星形映射-I 路');%接收端波形figure;subplot(211);stem(n,bit_rec_rx(n);title('

7、;方形接收序列');subplot(212);stem(n,bit_star_rx(n); title('星形接收序列');figure('Name','接收端基带信号');subplot(411);plot(t,real(base_rec_rx(t);title('方形映射-Q 路');subplot(412);plot(t,imag(base_rec_rx(t); subplot(413); plot(t,real(base_star_rx(t); subplot(414); plot(t,imag(base_star

8、_rx(t);%基带眼图N1=20000;Tn=f/fd;eye_rex=base_rec(1:N1); eyediagram(eye_rex,T n*4,T n); eye_star=base_star(1:N1); eyediagram(eye_star,T n*4,T n);title('方形映射-I路');title('星形映射-Q路');title('星形映射-I路');title('方形基带眼图');title('星形基带眼图');%接收端星座图%scatterplot(qam16_data_rec(1

9、2,:); figure('Name','方形16QAM接收端星座图');for i=3:3:12subplot(2,2,i/3);plot(real(qam16_data_rec(i,:),imag(qam16_data_rec(i,:),'.');xmax=5;axis(-xmax xmax -xmax xmax) title('S nr=', nu m2str(SNR(i),' dB'); end figure('Name','星形16QAM接收端星座图'); for i=3:

10、3:12subplot(2,2,i/3);plot(real(qam16_data_star(i,:),imag(qam16_data_star(i,:),'.');xmax=3;axis(-xmax xmax -xmax xmax)grid on; title('S nr=', nu m2str(SNR(i),' dB');end %功率谱密度f_plot;%误码率分析%16QAM误码率曲线figure('Name','16QAM 误码性能对比'); % semilogy(SNRtheo,theo_perr_qa

11、m16); % hold on;semilogy(SNR,perr_qam16_rec,'*');hold on; semilogy(SNR,perr_qam16_star,'o'); xlabel('SNR in dB');ylabel('Prb of Err');legend('方形 16QAM','星形 16QAM'); title('16QAM误码性能对比');%基带成型function basenfo=base_shape(fd,fs,f,seq_16QAM)%平方根升余弦

12、滤波器,滚降系数0.5,延迟3个采样点flt=rcosi ne(fd,fs,'sqrt',0.5);%I路和Q路seq_Q=real(seq_16QAM);seq_I=imag(seq_16QAM);%增采样R=fs/fd;up_seq_Q=upsample(seq_Q,R); up_seq_l=upsample(seq_l,R);%升余弦调制rcos_Q=c on v(up_seq_Q,flt);rcos_I=c on v(up_seq_I,flt);%提升rcos_Q_up=i nterp(rcos_Q,f/fs);rcos_I_up=i nterp(rcos_l,f/fs

13、);base_ in fo=rcos_Q_up+j*rcos_I_up;%载波解调fun ctio n data_rx base_rx=CarrierDemod(fd,fs,fc,f,receive)%分两路乘正交高频载波rc_le ngth=le ngth(receive);flt=rcosi ne(fd,fs,'sqrt',0.5);t=0:rc_le ngth-1;rc_Q=receive .* sin (2*pi*fc*t/f);rc_I=receive .* cos(2*pi*fc*t/f);%减采样后根升余弦匹配滤波,注意对齐采样点dow n_Q=dow nsamp

14、le(0 rc_Q,f/fs);dow n=dow nsample(rc_l,f/fs); low_Q_rcos=c on v(dow n_Q,flt); low_l_rcos=c on v(dow n,flt);base_rx=low_Q_rcos(1:le ngth(low丄rcos)+j*low丄rcos;%两次根升余弦滤波延迟,定位初始信号位置%delay+1:e nd-delay-1R=fs/fd;delay=3*R*2;%类型转换rc_Q_seq=(dow nsample(low_Q_rcos(delay+1:e nd-delay-1),R); rc_I_seq=(dow nsam

15、ple(low丄rcos(delay+1:e nd-delay-1),R);data_rx=rc_Q_seq+j*rc_I_seq;%载波调制fun ctio n tran smit=CarrierMod(fc,f,base)%载波调制t=0:le ngth(base)-1;high_freq_Q=real(base) .* sin (2*pi*fc*t/f); high_freq_I=imag(base) .* cos(2*pi*fc*t/f);tran smit=high_freq_Q+high_freq_I;%QAM解调程序,将 MQAM码元还原为二进制数据%入口参数:data_QAM

16、: QAM码元数据%M_QAM:MQAM 中M的大小%出口参数:二进制数据比特流%fun ctio n data_out=QamDemod(data_QAM,M_QAM)k=log2(M_QAM);% 每个M进制码元的bit数 data_len=length(data_QAM);% 码元长度%QAM信号放缩至与发送端相同比例data_temp=data_QAM(fi nd(real(data_QAM>0);aver=mea n(real(data_temp); data_Qam_temp=data_QAM/aver*(2A(k/2-1);%平移到第一象限data_Qam_temp2=(d

17、ata_Qam_temp+(2A(k/2)-1)*(1+j)/2;%将实部虚部分别映射为二进制数据%实部data_real=round(real(data_Qam_temp2);% 实部判决data_real(find(data_real>(2A(k/2)-1)=2A(k/2)-1;% 大于 2A(k/2)-1 的数据判定为 2A(k/2)-1data_real(find(data_real<0)=0;% 小于 0 的数据判为 0bit_real=abs(dec2bi n(data_real)-'0:%虚部data_imag=round(imag(data_Qam_temp

18、2);% 虚部判决data_imag(find(data_imag>(2A(k/2)-1)=2A(k/2)-1;% 大于 2A(k/2)-1 的数据判定为 2人(刃2)-1 data_imag(find(data_imag<0)=0;% 小于 0 的数据判为 0bit_imag=abs(dec2b in( data_imag)-'0'%还原为二进制比特流bit_rec=bit_real,bit_imag'data_out=reshape(bit_rec,1,data_le n*k);%QAM调制程序,实现二进制到MQam调制%入口参数:binary :二进制

19、数据%M_QAM:MQAM 中M的大小%返回参数:MQAM码元%fun ctio n data_M = QamMod(bi nary,M_QAM)k=log2(M_QAM);% 每个M进制码元的bit数data_len=length(binary);% 比特长度binary_rec=reshape(binary,k,data_len/k)'% 转化为 data_len/k 行,k 列,的矩阵,以便转化为16进制M进制%计算实部data_str1= nu m2str(b in ary_rec(:,1:k/2);data_m_real=b in 2dec(data_str1);%计算虚部d

20、ata_str2=n um2str(bi nary_rec(:,k/2+1:k);data_m_imag=b in 2dec(data_str2);%实部虚部映射到 MQamdata_M=(data_m_real*2-2A(k/2)+1)+j*(data_mmag*2-2A(k/2)+1).'%星形16QAM映射function data_m16 = SrarQamMod(b in ary)%binary=randint(1,1OO);% 产生随机序列data_len=length(binary);% 比特长度binary_rec=reshape(binary,4,data_len/4)'% 转化为 data_len/4 行,4 列,的矩阵,以便转化为 16进制data_str =nu m2str(b in ary_rec);data_dec=b in 2dec

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论