基于matlab的16QAM调制解调仿真
% File name:16QAM.m
clear all;
clc;
%/**************产生信源***************/
N=10000;
data=randint(1,4*N);
data_re=zeros(4,N);
Eav=10;
data_re=reshape(data,4,N);
%/**************符号映射***************/
% I_data=zeros(1,2*N);
% Q_data=zeros(1,2*N);
% I_data(1,:)=data(1:2:end);
% Q_data(1,:)=data(2:2:end);
data_mod=zeros(2,N);
for k=1:N
if (data_re(:,k)==[0 0 0 0]')
data_mod(:,k)=[-1 -1]';
elseif (data_re(:,k)==[0 0 0 1]')
data_mod(:,k)=[-1 -3]';
elseif (data_re(:,k)==[0 0 1 0]')
data_mod(:,k)=[-1 1]';
elseif (data_re(:,k)==[0 0 1 1]')
data_mod(:,k)=[-1 3]';
elseif (data_re(:,k)==[0 1 0 0]')
data_mod(:,k)=[-3 -1]';
elseif (data_re(:,k)==[0 1 0 1]')
data_mod(:,k)=[-3 -3]';
elseif (data_re(:,k)==[0 1 1 0]')
data_mod(:,k)=[-3 1]';
elseif (data_re(:,k)==[0 1 1 1]')
data_mod(:,k)=[-3 3]';
elseif (data_re(:,k)==[1 0 0 0]')
data_mod(:,k)=[1 -1]';
elseif (data_re(:,k)==[1 0 0 1]')
data_mod(:,k)=[1 -3]';
elseif (data_re(:,k)==[1 0 1 0]')
data_mod(:,k)=[1 1]';
elseif (data_re(:,k)==[1 0 1 1]')
data_mod(:,k)=[1 3]';
elseif (data_re(:,k)==[1 1 1 1]')
data_mod(:,k)=[3 3]';
elseif (data_re(:,k)==[1 1 1 0]')
data_mod(:,k)=[3 1]';
elseif (data_re(:,k)==[1 1 0 1]')
data_mod(:,k)=[3 -3]';
else
data_mod(:,k)=[3 -1]';
end
end
%/**************叠加噪声***************/
snr_in_dB=0:14;
snr=10.^(snr_in_dB/10);
h=waitbar(0,'Please wait for a moment...');
for l=1:length(snr_in_dB)
waitbar(l/length(snr_in_dB));
error_bit_num=0;
error_sym_num=0;
sigma=sqrt(Eav/(8*snr(l)));
I_noise=sigma*randn(1,N);
Q_noise=sigma*randn(1,N);
noise=[I_noise; Q_noise];
% noise=[zeros(1,N); zeros(1,N)];
% data_noise=awgn(data_mod,snr_in_dB,1);
data_noise=data_mod+noise;
%/**************接收判决***************/
for k=1:N
if (data_noise(1,k)>2 && data_noise(2,k)>2)
data_receive(:,k)=[1 1 1 1]';
elseif (data_noise(1,k)>2 && data_noise(2,k)<2 && data_noise(2,k)>0)
data_receive(:,k)=[1 1 1 0]';
elseif (data_noise(1,k)>2 && data_noise(2,k)>-2 && data_noise(2,k)<0)
data_receive(:,k)=[1 1 0 0]';
elseif (data_noise(1,k)>2 && data_noise(2,k)<-2)
data_receive(:,k)=[1 1 0 1]';
elseif (data_noise(1,k)>0 && data_noise(1,k)<2 && data_noise(2,k)>2)
data_receive(:,k)=[1 0 1 1]';
elseif (data_noise(1,k)>0 && data_noise(1,k)<2 && data_noise(2,k)>0 && data_noise(2,k)<2)
data_receive(:,k)=[1 0 1 0]';
elseif (data_noise(1,k)>0 && data_noise(1,k)<2 && data_noise(2,k)>-2 && data_noise(2,k)<0)
data_receive(:,k)=[1 0 0 0]';
elseif (data_noise(1,k)>0 && data_noise(1,k)<2 && data_noise(2,k)<-2)
data_receive(:,k)=[1 0 0 1]';
elseif (data_noise(1,k)>-2 && data_noise(1,k)<0 && data_noise(2,k)>2)
data_receive(:,k)=[0 0 1 1]';
elseif (data_noise(1,k)>-2 && data_noise(1,k)<0 && data_noise(2,k)>0 && data_noise(2,k)<2)
data_receive(:,k)=[0 0 1 0]';
elseif (data_noise(1,k)>-2 && data_noise(1,k)<0 && data_noise(2,k)>-2 && data_noise(2,k)<0)
data_receive(:,k)=[0 0 0 0]';
elseif (data_noise(1,k)>-2 && data_noise(1,k)<0 && data_noise(2,k)<-2)
data_receive(:,k)=[0 0 0 1]';
elseif (data_noise(1,k)<-2 && data_noise(2,k)>2)
data_receive(:,k)=[0 1 1 1]';
elseif (data_noise(1,k)<-2 && data_noise(2,k)>0 && data_noise(2,k)<2)
data_receive(:,k)=[0 1 1 0]';
elseif (data_noise(1,k)<-2 && data_noise(2,k)>-2 && data_noise(2,k)<0)
data_receive(:,k)=[0 1 0 0]';
else
data_receive(:,k)=[0 1 0 1]';
end
end
%/**************统计错误符号***************/
for p=1:N
if (data_receive(1,p)~=data_re(1,p) || data_receive(2,p)~=data_re(2,p) || data_receive(3,p)~=data_re(3,p) || data_receive(4,p)~=data_re(4,p))
error_sym_num=error_sym_num+1;
end
end
ser(l)=error_sym_num/N;
%/**************统计错误比特***************/
data_receive_re=reshape(data_receive,1,4*N);
error_bit_num=sum(abs(data_receive_re-data));
ber(l)=error_bit_num/(4*N);
end
close(h);
semilogy(snr_in_dB,ber,'*-');
grid on;
hold on;
semilogy(snr_in_dB,ser,'ro-');
legend('误比特率','误符号率');
xlabel('SNR(dB)');
ylabel('BER and SER');
title('16QAM 性能曲线');
基于matlab的16QAM调制解调仿真相关推荐
- matlab实现ofdm调制解调,基于MATLAB的OFDM调制解调仿真
基于MATLAB的OFDM调制解调仿真 题目:基于 MATLAB的 OFDM调制解调仿真2009年 6 月 13 日目 录摘要 .IIAbstract IV第 1章 正交频分复用的来源 - 1 -1. ...
- 16QAM调制解调仿真(matlab,详细介绍仿真方案的设计、结果及结论、完整代码及注释)
16QAM调制解调仿真目录 一.仿真要求 二.仿真方案详细设计 三.仿真结果及结论 四.仿真代码 一.仿真要求 1.用基带等效的方式仿真16-QAM在AWGN信道下的误码率和误比特率性能,并与理论值相 ...
- 基于matlab的16qam系统,基于MATLAB的16QAM通信系统的仿真精选.doc
基于MATLAB的16QAM通信系统的仿真精选 基于MATLAB的16QAM通信系统的仿真 [摘要]随着现代通信技术的发展,特别是移动通信技术高速发展,频带利用率问题越来越被人们关注.在频谱资源非常有 ...
- 基于锁相环的调制解调仿真实现
基于锁相环的调制解调仿真实现 论文+代码+实验结果下载地址:下载地址 摘要 随着现代集成电路技术的发展,锁相环已经成为集成电路设计中非常重要的一个部分,所以对锁相环的研究具有积极的现实意义.锁相环电路 ...
- 脉位调制解调 matlab,基于matlab的am调制解调
基于matlab的am调制解调 基于 Matlab 的 AM 调制解调一.AM 的调制原理AM 是指对信号进行幅度调制 [2].一般做法是先在原信号上叠加一个直流信号,以保证信号 , 然后乘上一个高频 ...
- am解调matlab程序,基于Matlab的AM调制解调.doc
学号20100602050101 密级 公 开 本科毕业论文 基于Matlab的AM调制解调 及抗噪性能分析 学 院 名 称: 专 业 名 称: 学 生 姓 名: 指 导 教 师: 讲师 二〇一四年五 ...
- MATLAB BPSK通信系统调制解调仿真原理及代码(二)
此仿真是瑞丽衰落信道与高斯信道的仿真对比,高斯信道的原理及仿真代码前文已有讲述. 高斯信道下的原理及代码请见 MATLAB BPSK通信系统调制解调仿真原理及代码(一)_惜洛-Jankin的博客-CS ...
- 通信算法之十一:QPSK/DQPSK/OQPSK/BPSK/DBPSK/16QAM调制解调仿真链路
一. QPSK 正交相移键控 (Quadrature Phase Shift Keying)简称"QPSK",是一种数字调制方式.它分为绝对相移和相对相移两种.由于绝对相移方式存在 ...
- 基于Matlab的DSB调制解调,课程设计(论文)-基于MATLAB的DSB调制与解调分析.doc
目 录 前言2 1 DSB调制与解调原理3 1.1DSB调制原理3 1.2DSB解调原理与抗噪性能5 2 DSB调制解调分析的MATLAB实现7 2.1正弦波调制7 2.1.1调制信号幅度=0.8×载 ...
- 基于MATLAB的自适应调制解调通信系统的误码率仿真,对比BPSK,QPSK,16QAM,64QAM
目录 1.算法仿真效果 2.MATLAB核心程序 3.算法涉及理论知识概要 4.完整MATLAB 1.算法仿真效果 matlab2022a仿真结果如下: 2.MATLAB核心程序 .......... ...
最新文章
- 机械转电子工程嵌入式方向靠谱吗?怎么上手学习?
- 【 MATLAB 】fliplr 函数介绍(从左到右翻转阵列)
- mysql中有哪些数值型函数_mysql数值型函数汇总
- 【SSH网上商城项目实战05】完成数据库的级联查询和分页
- AspectCore动态代理中的拦截器详解(一)
- 比较OpenDDR和WURFL
- eclipse mat 分析dump文件,打开文件报错,out of memeory
- 继续畅通工程(HDU-1879 )
- ICPC程序设计题解书籍系列之一:刘汝佳:《算法竞赛入门经典》(第2版)
- Unity使用TextMeshPro显示字体
- qpsk频谱图matlab,QPSK调制得出的调制信号频谱波形多了一个点频信号
- 应聘阿里的前车之鉴:从被回绝的系列原因出发,解读应聘阿里注意事项
- A Question of Ingestion(Dp)
- [不变初心数(15分] 用数组存储不变的数最后对照即可
- 华为mate40pro和华为mate30pro的区别
- 十分钟实现鼠标悬停效果,CSS3悬停效果
- Mac OS X 系统更新升级包下载后的存储位置
- MagicaVoxel 0.99.1 使用说明
- 力扣—1818.绝对差值和
- EV SSL证书是什么意思?
热门文章
- PropertyUtils与BeanUtils区别
- latex附录中放python代码_LaTeX 里「添加程序代码」的完美解决方案
- 奇迹1.03H服务端开服架设文件Data文件详解
- 计算机如何恢复记事本,如何使用电脑桌面便签恢复误删除了的记事本数据内容?...
- 在Ubuntu上使用Netdata设置实时性能监控
- 如何正确的寻找电影资源
- android studio 融云SDK集成
- 网友发给我一个游戏钓鱼网站,我用python渗透了该网站所有信息!
- C语言回溯算法求幂集,回溯法与树的遍历 - 求幂集
- jmeter下载安装教程