基于MATLAB的LDPC编译码仿真,调制为64QAM
部分源码:
% 首先加载G , H
clear all
load G.mat;
load H.mat;
max_iter=50;
L_frame=size(G,1);
n_frame=100;
start=0;
step=2;
finish=12;
r=size(G,1)/size(G,2);
M=6;
Es=42; % 一个64QAM符号能量 也是信号功率
Eb=Es/M;
plot_pe=[];
Q=1;
% err_list_index=1; % used by test
axis_EbN0=start:step:finish;
%******************************************************
for EbN0=start:step:finish;
Liner_EbN0=10^(EbN0/10);
pe_number=0;
variance=0.5*(Eb/Liner_EbN0)/r; % 噪声方差, 来源于a^2/(2*delta^2)=Liner_EbN0,a^2信息幅值的平方即比特能量, 2*delta^2=N0. N0/r得到编码后的噪声功率谱密度
for number_frame=1:1:n_frame % variance是单独加在同相(正交相)的噪声功率普密度
[EbN0,number_frame]
x_msg = (sign(randn(1,size(G,1)))+1)/2; % random bits
x_code_msg= mod(x_msg*G,2); % coding
in=x_code_msg;
x_tx_msg= QAM64m(in); % 16QAM modulation
real_tx=real(x_tx_msg); imag_tx=imag(x_tx_msg);
waveform= x_tx_msg+sqrt(variance)*( randn(size(real_tx)) + randn(size(imag_tx))*i ) ; % AWGN transmission
[f0,f1]=QAM64d(waveform,2*variance);
LLR=log(f0./(f1+eps));
[z_hat, success, k] = log_ldpc_decode(H,LLR,max_iter);; % likelihoods
x_dec_msg = z_hat(1:size(G,1)); % 码率1/2 时使用
% if success==0 % used by test
% err_list(err_list_index,1)=number_frame; % 第一列代表含有错误的frame的号数
% err_list(err_list_index,2)=sum(x_msg~=x_dec_msg); % 第二列代表错误的个数
% err_list_index=err_list_index+1;
% end
pe_number=pe_number+sum(x_msg~=x_dec_msg);
current_time=fix(clock);
fprintf('i am working %g,total(%g) %g年 %g月 %g日 %g时 %g分 %g秒\n\n',Q,(((finish-start)/step)+1)*n_frame,current_time(1),current_time(2),current_time(3),current_time(4),current_time(5),current_time(6))
Q=Q+1;
fprintf('\n\n')
end
pe=pe_number/(L_frame*n_frame);
plot_pe=[plot_pe,pe];
end
semilogy(axis_EbN0,plot_pe,'b*-')
xlabel('Eb/N0 信号功率/噪声功率(db)')
ylabel('BER')
title('误码率')
grid on
误码率曲线如下:
D170
基于MATLAB的LDPC编译码仿真,调制为64QAM相关推荐
- 基于matlab的LDPC编译码误码率仿真,调制方式为64QAM
目录 1.算法概述 2.仿真效果 3.MATLAB仿真源码 1.算法概述 "LDPC编译码 低密度校验码(LDPC码)是一种前向纠错码,LDPC码最早在20世纪60年代由Gallager在他 ...
- 基于MATLAB的LDPC编译码误码率仿真,仿真调制为64QAM,对比不同译码迭代次数
目录 1.算法描述 2.仿真效果预览 3.MATLAB核心程序 4.完整MATLAB 1.算法描述 LDPC码是麻省理工学院Robert Gallager于1963年在博士论文中提出的一种具有稀疏校验 ...
- 基于matlab的RS编译码仿真,从底层原理分析RS编译码的实现过程
欢迎订阅<FPGA学习入门100例教程>.<MATLAB学习入门100例教程> 目录 一.理论基础 二.核心程序 三.测试结果 一.理论基础
- ccsds ldpc matlab,CCSDS标准的LDPC编译码仿真
文档采用MATLAB发布,仿真没有跑完. CCSDS标准的LDPC编译码仿真 本脚本完成了CCSDS标准(o1)版本中适用于深空通信任务的LDPC编译码过程的仿真, 同时给出了在信息位长度为1024, ...
- 基于matlab的卷积码实验报告,基于MATLAB的卷积码编译码设计仿真.doc
摘要:在数字信号的传输过程中,会受到信道特性不理想和噪声的影响,通常采用差错控制编码来提高系统的可靠性.卷积码是P.Elias等人提出的,这一编码技术至今广泛使用.目前,卷积码已普遍在无线通信标准使用 ...
- 基于matlab的BCH编译码算法原理介绍与仿真分析
1.问题描述: BCH码的译码可以分为时域译码和频域译码两种. 频域译码是把码字看作一个时域数字序列,对其进行有限域的离散傅氏变换(DFT)将它变换到频域,然后利用其频域特点译码.这样通过对频域伴随式 ...
- 基于matlab编译码器的设计,基于MATLAB循环码编译码仿真
基于MATLAB循环码编译码仿真(论文11000字) 摘要:在具体了解循环码的编码理论的基础上,使用 M ATLA B 软件设计了循环码编译码器. 通过 M ATLAB 软件实现循环码的编译码 ,通过 ...
- 【编码译码】基于matlab HDB3编译码仿真【含Matlab源码 1961期】
⛄一.获取代码方式 获取代码方式1: 完整代码已上传我的资源:[编码译码]基于matlab HDB3编译码仿真[含Matlab源码 1961期] 点击上面蓝色字体,直接付费下载,即可. 获取代码方式2 ...
- matlab模拟角度调制系统的仿真与设计,基于Matlab的模拟通信系统的仿真设计
<基于Matlab的模拟通信系统的仿真设计>由会员分享,可在线阅读,更多相关<基于Matlab的模拟通信系统的仿真设计(25页珍藏版)>请在人人文库网上搜索. 1.目录摘要-第 ...
最新文章
- LINQ学习(六):OrderBy/Group By子句
- IT行业的日常工作方法 学习(转)
- 1.2.1 算法的基本概念
- 方便食品直接上菜 自嗨锅和西贝哪来的勇气?
- 如何将CSDN的博客同步到网易号平台上去
- 【AI视野·今日CV 计算机视觉论文速览 第203期】Fri, 21 May 2021
- VSCode运行Python教程
- 定了!苹果 10 亿美元收购英特尔调制解调器部门!
- Weka下载安装详解
- 用井字游戏理解 Minimax 算法
- 微带线 带状线 过孔的时延对比
- 约翰 霍普克罗夫特计算机科学中心,上海交通大学约翰·霍普克罗夫特计算机科学中心(John Hopcroft Center)...
- 使用QSS美化PyQt5界面,分享4套超赞皮肤和QSS专用编辑器!
- Format_String_Attack_Lab
- 深度解析——图片加载到内存中的大小计算内存优化
- 【JavaScript】9.基本引用类型-原始值包装类型
- 设置ListView中的所有Item均不可点击
- 微信自定义分享,网页分享微信实现标题,描述和图片的方法(2020)
- android 屏幕最小宽度_AndroidTV屏幕适配-smallestWidth(最小宽度) 限定符
- Word怎么整改图片的颜色格式?简单技巧!word如何设置图片颜色格式?
热门文章
- AngularJS学习笔记二:AngularJS指令
- HTML 统一资源定位器(Uniform Resource Locators)URL
- Runtime.getRuntime().exec(...)使用方法
- 使用PostBackUrl与Server.Transfer传递数据
- 自动生成Insert数据的SQL脚本
- 【剑指offer】最长不含重复字符的子字符串
- Unity光照与渲染设置学习笔记
- python3: 数字日期和时间(1)
- (转)创业的注意事项
- bzoj3589 动态树