⛄一、获取代码方式
获取代码方式1:
完整代码已上传我的资源:【数字信号调制】基于matlab 16QAM数字信号调制解调(含误码率)【含Matlab源码 4765期】
点击上面蓝色字体,直接付费下载,即可。
获取代码方式2:
付费专栏Matlab信号处理(初级版)
备注:
点击上面蓝色字体付费专栏Matlab信号处理(初级版),扫描上面二维码,付费29.9元订阅海神之光博客付费专栏Matlab信号处理(初级版),凭支付凭证,私信博主,可免费获得1份本博客上传CSDN资源代码(有效期为订阅日起,三天内有效);
点击CSDN资源下载链接:1份本博客上传CSDN资源代码
⛄二、部分源代码
%
clear all;
close all;
clc;
%参量定义
MES_LEN=4*10000; % source message length
SYM_LEN=MES_LEN/4;% symbol length
INSERT_TIMES=8; %insert times befor filter
PETAL=5; %num of petals each side of filter
BETA=0.5; %filter bandwidth
SELECT=2; %mode slect
switch SELECT
case 1,%模式1:单个SNR下的调制、解调、误码分析
SNR=12;%符号SNR值
%产生调制信号
[signal_sendI,signal_sendQ,message,signal_base_band]=Modulation(MES_LEN,SYM_LEN,INSERT_TIMES,PETAL,BETA);
%加高斯白噪声
[signal_receiveI,signal_receiveQ]=AddNoise(signal_sendI,signal_sendQ,SNR,INSERT_TIMES);
%接收机解调
[mymessage,mysignal_base_band]=Receiver(signal_receiveI,signal_receiveQ,INSERT_TIMES,MES_LEN,SYM_LEN,BETA,PETAL);
%误码率统计
ErrBit = MES_LEN-sum((mymessage == message));
ErrSym = SYM_LEN-sum((mysignal_base_band == signal_base_band));
MyErrBitRate=ErrBit/MES_LEN;
MyErrSymRate=ErrSym/SYM_LEN;
%理论误符号率公式
TherSer=SER_16QAM(SNR);
case 2,%模式2:误码曲线的绘制
SNR = [10 12 14 16 18 20]; %符号SNR值
SumBit = zeros(1,length(SNR));
SumErrBit = zeros(1,length(SNR));
SumSym = zeros(1,length(SNR));
SumErrSym = zeros(1,length(SNR));
h=waitbar(0,'正在绘制,请稍候 …… ');
for k = 1:length(SNR)
SumSym(1,k) = 0;
SumErrSym(1,k) = 0;
SumBit(1,k) =0;
SumErrBit(1,k) =0;
while(SumErrSym(1,k)<100 && SumSym(1,k)<SYM_LEN*50) %出现100个误符号 或者 仿真点数太多时停止
%产生调制信号
[signal_sendI,signal_sendQ,message,signal_base_band]=Modulation(MES_LEN,SYM_LEN,INSERT_TIMES,PETAL,BETA);
⛄三、运行结果
⛄四、matlab版本及参考文献
1 matlab版本
2014a
2 参考文献
[1] 沈再阳.精通MATLAB信号处理[M].清华大学出版社,2015.
[2]高宝建,彭进业,王琳,潘建寿.信号与系统——使用MATLAB分析与实现[M].清华大学出版社,2020.
[3]王文光,魏少明,任欣.信号处理与系统分析的MATLAB实现[M].电子工业出版社,2018.
[4]李树锋.基于完全互补序列的MIMO雷达与5G MIMO通信[M].清华大学出版社.2021
[5]何友,关键.雷达目标检测与恒虚警处理(第二版)[M].清华大学出版社.2011
3 备注
简介此部分摘自互联网,仅供参考,若侵权,联系删除