LDPC编译码在长距离SC-OFDM通信中的MATLAB仿真

一、理论基础


VPI光通信系统模拟软件支持灵活的多速率传输系统,通过这个软件,用户可以从基本的光子元素向上层建立模型,如有源和无源波导、定向耦合器、分路器、MMIs、星型耦合器及微环谐振器等。VPI可应用于新型无源集成电路、可调谐激光器及多层半导体器件等应用的模拟设计,新的功能引入了无源PIC元素模块。最新版本的VPI软件可设计高速光传输系统,同时可以选择MPSK,MQAM及 OFDM等调制格式。为了更加充分的研究LDPC性能,将使用VPI光通信模拟平台模拟更加符合实际情况的光通信信道,在VPI中构建如下的测试平台:

基于LDPC编译码的长距离SC-OFDM通信链路matlab仿真_SC-OFDM通信链路

LDPC(low-density parity-check codes)码,即低密度奇偶校验码,其主要原理是通过构造一个系数校验矩阵进行编译码,其最早由Gallager于1962年提出的,但是主要从1995年才开始广泛使用,其中MacKay教授于1995年通过迭代译码的方式,证明了LDPC码具有比Turbo更好的纠错能力。LDPC码具有非常好的编码纠错性能,其可以更接近香浓误码率极限,虽然LDPC纠错码具有优异的性能,但是其理论并不复杂,其译码的复杂度相对于Turbo译码而言更低,而且LDPC编译码,从结构上可以,可以通过并行的处理方式进行,从而大大提高算法译码的吞吐量,适合实际硬件的实现。同时,LDPC纠错码具有非常好的抗突发错误的能力,而光通信系统中,经常会出现连续的突发错误,这个特性使得LDPC在超长距离的光通信系统中具有良好的通信性能,因此LDPC编译码正越来越受到业内的关注。



信道编码的译码算法也决定着LDPC码能否广泛地实际应用。基于置信传递的译码算法,也就是BP算法是最基本、应用最广泛的算法。最小和译码算法是BP算法简化改进的结果这是目前最为常用的两种译码算法。  置信传递的译码算法是一种基于迭代方式的概率译码算法,基本方法如下:基于LDPC编译码的长距离SC-OFDM通信链路matlab仿真_SC-OFDM通信链路_02

基于LDPC编译码的长距离SC-OFDM通信链路matlab仿真_迭代_03


基于LDPC编译码的长距离SC-OFDM通信链路matlab仿真_matlab_04

       根据这个判决式,得到每个比特的概率,分别为0或1。组成一个临时的判决值的矩阵集合y,若满足HT y=0或者迭代次数达到最大的次数,结束迭代;否则从第2步开始继续迭代,直到返回有效的结果。

二、MATLAB仿真程序

登录后复制

clc;clear all;close all;warning off;addpath 'func\'; R        = 0.5;%设置码率为1/2;N        = 512;
%设置奇偶校验矩阵大小     M        = N*R;SNR      = 0:1:4;     %设置Eb/N0;*Max_iter = 50;               
%最大迭代次数*%产生奇偶校验矩阵H        = mackay(M,N);TJL      = 10000;for i=1:length(SNR)    i    Bit_err(i)    
= 0; %设置误码率参数    Num_err       = 0; %蒙特卡洛模拟次数    Numbers       = 0; %误码率累加器    
iter_moy_temp = [];%叠加寄存器    while Num_err <= TJL            fprintf('Eb/N0 = %f\n', SNR(i));        
Num_err        Trans_data           = round(rand(N-M,1));           %产生需要发送的随机数        
[ldpc_code,newH]     = func_Enc(Trans_data,H);       %LDPC编码        u                    
= [ldpc_code;Trans_data];       %LDPC编码        Trans_BPSK           = 2*u-1;                        
%BPSK        %通过高斯信道        N0                   = 2*10^(-SNR(i)/10);        Rec_BPSK             
= Trans_BPSK+sqrt(N0/2)*randn(size(Trans_BPSK));        %LDPC译码         [vhat,nb_iter]       = func_Dec(Rec_BPSK,newH,N0,Max_iter);        iter_moy_temp(end+1) = nb_iter;                [nberr,rat]          = biterr(vhat',u);        Num_err              = Num_err+nberr;        Numbers              = Numbers+1;    end    Bit_err(i) = Num_err/(N*Numbers);endfigure;semilogy(SNR,Bit_err,'o-');xlabel('Eb/N0(dB)');ylabel('BER');grid on;hold on;if Max_iter == 1   save data1.mat SNR Bit_errendif Max_iter == 5   save data5.mat SNR Bit_errendif Max_iter == 20   save data20.mat SNR Bit_errendif Max_iter == 50   save data50.mat SNR Bit_errend 1.2.3.4.5.6.7.8.9.10.11.12.13.14.15.16.17.18.19.20.21.22.23.24.25.26.27.28.29.30.31.32.33.34.35.36.37.38.39.40.41.42.43.44.45.46.47.48.49.50.51.52.53.54.55.56.57.58.59.60.61.62.63.64.

三、仿真结果

基于LDPC编译码的长距离SC-OFDM通信链路matlab仿真_matlab_05


基于LDPC编译码的长距离SC-OFDM通信链路matlab仿真_matlab_06


免责声明:本文系网络转载或改编,未找到原创作者,版权归原作者所有。如涉及版权,请联系删

QR Code
微信扫一扫,欢迎咨询~

联系我们
武汉格发信息技术有限公司
湖北省武汉市经开区科技园西路6号103孵化器
电话:155-2731-8020 座机:027-59821821
邮件:tanzw@gofarlic.com
Copyright © 2023 Gofarsoft Co.,Ltd. 保留所有权利
遇到许可问题?该如何解决!?
评估许可证实际采购量? 
不清楚软件许可证使用数据? 
收到软件厂商律师函!?  
想要少购买点许可证,节省费用? 
收到软件厂商侵权通告!?  
有正版license,但许可证不够用,需要新购? 
联系方式 155-2731-8020
预留信息,一起解决您的问题
* 姓名:
* 手机:

* 公司名称:

姓名不为空

手机不正确

公司不为空