MATLAB仿真16QAM调制解调

  • k6_687311
    了解作者
  • 1.7KB
    文件大小
  • 文件格式
  • 0
    收藏次数
  • VIP专享
    资源类型
  • 0
    下载次数
  • 2022-04-24 04:18
    上传日期
系统包含功率谱,星座图,误码率曲线和眼图
16QAM.rar
  • 16QAM
  • t2f.m
    486B
  • 16QAM.m
    2.6KB
内容介绍
clc clear ; close all; M=16;%mqam的进制数 mqam_count =400; snr=13; %信噪比 %-------------------------------------& bit_per_symbol=log2(M); % 每个符号占的比特等于4 bit_length = mqam_count*bit_per_symbol; %所有符号加起来占的比特数量= 4x400 bit_signal = round(rand(1,bit_length))'; %生成一个1600x1的包含 1,0 的矩阵 figure(1);plot(bit_signal); axis([0 100 -1 2]); %这里是限定横轴是从0-100, 纵轴是从-1到2 title('发射码元') xlabel('第几bit'); ylabel('二进制值'); bit_moded1 = qammod(bit_signal,M,'InputType','bit'); %输出使用正交幅度调制消息信号X的复包络。 %M是字母表大小,必须是2的整数幂,表示调制阶数。消息信号X必须由0到M-1之间的整数组成。X可以是标量、矢量、矩阵或三维数组。 figure(2) scatter(real(bit_moded1),imag(bit_moded1),'*g'); title('调制后的星座图'); %-------------------------------------% signal_time_C_W_R=awgn(real(bit_moded1),snr); %在信号中加入高斯白噪声 signal_time_C_W_i=awgn(imag(bit_moded1),snr); signal_time_C_W=complex(signal_time_C_W_R,signal_time_C_W_i); figure(3) scatter(1.5*real(signal_time_C_W),1.5*imag(signal_time_C_W),'.g'); title('接收的星座图'); %-------------------------------------% eyediagram(bit_moded1,2) title('眼图'); eyediagram(signal_time_C_W,2) title('眼图'); %-------------------------------------% snr_qq=0; qq=zeros(150,1); for i=0:149 bit_moded_qq = qammod(bit_signal,M,'InputType','bit'); snr_qq=snr_qq+0.1; signal_time_C_W_R=awgn(real(bit_moded_qq),snr_qq); signal_time_C_W_i=awgn(imag(bit_moded_qq),snr_qq); signal_time_C_W=complex(signal_time_C_W_R,signal_time_C_W_i); bit_demod_sig=qamdemod(signal_time_C_W,M,'OutputType','bit'); error_bit = sum(bit_demod_sig~=bit_signal); error_rate = error_bit/length(bit_signal); qq(i+1)=error_rate; end figure;plot(bit_demod_sig); axis([0 100 -1 2]); %这里是限定横轴是从0-100, 纵轴是从-1到2 title('接收') xlabel('第几bit'); ylabel('二进制值'); %功率谱 Ns=32; %每码元的采样点数 Ts=2; %ms T=M*Ts; dt=Ts/Ns; t=[-T/2:dt:T/2-dt]; [f1,tmp1]=t2f(t,bit_signal); [f2,tmp2]=t2f(t,bit_demod_sig); Tmp1=10*log10(tmp1); Tmp2=10*log10(tmp2); Tmp1=abs(Tmp1).^2; Tmp2=abs(Tmp2).^2; figure subplot(2,1,1) plot(f1,Tmp1) title('发射时功率谱'); % axis([-2,2,-50,20]) subplot(2,1,2) plot(f2,Tmp2) title('接收时功率谱'); figure plot(0:0.1:14.9,qq) title('误码率曲线16qam'); %-----------------------------------% fs = 1000; sps = 32; txfilter = comm.RaisedCosineTransmitFilter('OutputSamplesPerSymbol',sps); ed = comm.EyeDiagram('SampleRate',fs*sps,'SamplesPerSymbol',sps); txSig = txfilter(signal_time_C_W); ed(txSig)
评论
    相关推荐
    • Matlab合集
      冈萨雷斯数字图像处理MATLAB版.中文版+数字图像处理第二版中文版(冈萨雷斯)+MATLAB-R2014a完全自学一本通+MATLAB R2016a完全自学一本通 素材文件+[模式识别与智能计算:MATLAB技术实现(第2版)].杨淑莹.扫描版
    • MATLAB教程
      MATLAB教程MATLAB教程MATLAB教程MATLAB教程MATLAB教程MATLAB教程
    • MATLAB
      MATLAB 该项目是在matlab上完成的,涉及创建和移动宇宙飞船和机器人。 太空飞船和机器人是使用Matlab中的简单几何形状创建的,并通过连续变换矩阵进行移动。 这个项目教我如何使用变换矩阵(旋转,平移等)的概念...
    • MATLAB基础
      一本学习matlab的一本好书
    • MATLAB编译器
      基于MATLAB 2018b版本介绍MATLAB编译器。介绍如何利用编译器将MATLAB代码编译为独立应用程序或组件,并在没有安装MATLAB的计算机上进行部署。
    • matlabruntime
      通过奇点容器运行您的matlab项目 可以在没有MATLAB的容器中运行matlab代码。 为此,我们首先需要通过Matlab编译器在本地构建相应的Matlab代码的独立应用程序,然后使用具有Matlab运行时( 的容器)运行该应用程序 )...
    • matlab实现
      matlab实现 matlab实现matlab实现matlab实现matlab实现
    • matlab 教程
      matlab 信号处理资料,里面包含信号处理pdf文档,一些杂乱的程序和命令等
    • matlab教程
      matlab教程,PPT格式,包含 matlab基本知识、matlab入门、matlab作图、线性规划、无约束优化、非线性规划、统计工具箱、差值、微分方程等多项知识点,并且每个知识点独立成为PPT,内还含有matlab信号处理详解等文档...
    • matlab简介
      1.MATLAB 开发环境 1.1 MATLAB 的视窗环境 进入MATLAB之后,会看到一个视窗MATLAB Command Window称为指令视窗,它是你键入指令的地方同时 MATLAB也将计算结果显示在此。 1.2 简易计算 我们先从MATLAB的...