private int getCharIndex(char c) throws InvalidAtributeException{ if( c >= '0' && c <= '9' ){ return c - 48; } else if( c >= 'A' && c <= 'Z' ){ return c - 55; } else if( c == '-' ){ return 36; } else if( c == '.' ){ return 37; } else if( c == ' ' ){ return 38; } else if( c == '$' ){ return 39; } else if( c == '/' ){ return 40; } else if( c == '+' ){ return 41; } else if( c == '%' ){ return 42; } else { throw new InvalidAtributeException("[Code39] The text contains unsuported chars."); } }
private int getChar(int c) throws InvalidAtributeException{ if( c >= 0 && c <= 9 ){ return c + 48; } else if( c >= 10 && c <= 35){ return c + 55; } else if( c == 36 ){ return 45; } else if( c == 37 ){ return 46; } else if( c == 38 ){ return 32; } else if( c == 39 ){ return 36; } else if( c == 40 ){ return 47; } else if( c == 41 ){ return 43; } else if( c == 42 ){ return 37; } else { throw new InvalidAtributeException("[Code39] The text contains unsuported chars."); } }
public String computeCheckSum(String texto) throws InvalidAtributeException { int check = 0; for( int i = 0; i < texto.length(); i++ ){ check += getCharIndex(texto.charAt(i)); } return (Character.valueOf((char)getChar(check%43)).toString()); }
@Test public void testComputeCheckSum() throws InvalidAtributeException { String code = "TEXT"; System.out.println(computeCheckSum(code)); }
相关推荐
线性分组码(Linear Block Code, LBC)是通信和数据存储领域中一种重要的错误纠正编码技术,其中低密度奇偶校验码(Low-Density Parity Check, LDPC码)因其高效性和接近香农极限的性能而备受关注。LDPC码是由美国...
低密度奇偶校验码(Low-Density Parity-Check Code, LDPC)是一种现代的错误纠正编码技术,广泛应用于数据通信、存储系统以及无线通信等领域。Matlab作为一款强大的数学计算软件,常被用于LDPC码的仿真与研究。本篇...
3. **解码函数**:通常采用迭代的Belief Propagation(信念传播)或Min-Sum算法,根据接收到的含噪编码位序列和校验矩阵尝试恢复原始信息位。 4. **仿真和性能评估**:通过比较解码后的信息位与原始信息位的差异,...
第15位IMEI数字是LCS(Check Sum,校验和),用于验证IMEI的有效性。这个校验和是通过特殊算法根据前面14位数字计算出来的,确保IMEI的完整性和正确性。 这个算号器不仅能够计算IMEI的第15位,还包含了WLAN地址自动...
它是一个13位数字的代码,包含了厂商识别码、商品项目代码和校验码三部分,有助于商品在全球范围内的流通和管理。在ASP(Active Server Pages)中,开发人员有时需要生成EAN13条形码以便于网页展示或打印。本文将...
`dpc_code.rar`这个压缩包文件包含了与LDPC码相关的源代码,是深入理解LDPC码原理和实现的重要资源。 **LDPC码的基本概念** 1. **编码原理**:LDPC码是由美国科学家Robert G. Gallager在1962年提出的一种分组码,...
LDPC(Low-Density Parity-Check)码,即低密度奇偶校验码,是现代通信系统中一种重要的纠错编码技术。由Robert G. Gallager在1962年首次提出,它在21世纪初由于其接近香农限的性能和相对简单的硬件实现而重新受到...
其中,低密度奇偶校验码(Low-Density Parity-Check Code,LDPC码)是一种高效且强大的纠错编码方法。本文将深入探讨LDPC码的编解码原理,以及其与BPSK调制解调的结合应用,并讨论不同码长比的影响。 ### 1. LDPC码...
这些算法在MatLab中可以通过循环结构实现,通过迭代更新校验节点和变量节点之间的消息,直至达到预设的迭代次数或满足停止准则。 3. **信道仿真**:在实际应用中,编码后的码字需要通过某种信道发送,如AWGN...
【LDPC码与解码简介】 LDPC(Low-Density Parity-Check)码是一种具有高效...通过对这个文件的深入理解和调试,我们可以了解到LDPC码在MATLAB环境中的具体实现细节,并能进行性能优化和适应不同信道环境下的解码策略。
3. **硬件实现**:介绍如何在实际硬件中实现LDPC解码器,包括FPGA和ASIC设计考虑。 4. **应用实例**:如在卫星通信、光纤通信、硬盘存储、无线通信标准(如WiFi、5G NR)中的应用案例。 5. **未来研究方向**:探讨...
LDPC码的核心思想是通过构建稀疏的校验矩阵来实现高效的错误检测和纠正。这种编码方式的“低密度”体现在校验矩阵中非零元素的比例较低,使得编码过程可以被高效地近似为迭代的信念传播算法,这大大降低了硬件实现的...
**LDPC码(Low-Density Parity-Check Code)是一种高效纠错编码技术,它在通信、存储等领域有广泛应用。MATLAB作为一个强大的数值计算环境,是实现LDPC码编解码算法的理想工具。** **LDPC码的基本原理:** LDPC码是...
check_sum = sum(int(num) * (i % 2 + 1) for i, num in enumerate(user_code)) % 10 ean13 = f"{user_code}{check_sum}" # 生成条形码图像 ean = barcode.get_barcode_class('ean13')(ean13, writer=Image...
在IT领域,LDPC(Low-Density Parity...通过阅读代码和报告,我们可以了解到如何在实际工程中实现这种译码算法,以及如何评估其性能。对于通信工程、信息理论或数据存储领域的研究者和工程师来说,这是一个宝贵的资源。
在MATLAB中实现LDPC码通常涉及到编码、解码算法的设计,以及性能分析。 【描述】"Low Density Parity Check Code Implementation" 确认了这个项目或文档是关于LDPC码的实现,这是一类高效的纠错编码技术,广泛应用...
本教程将聚焦于如何在Python中实现身份证的有效性验证。 首先,我们需要了解身份证号码的基本结构。中国第二代身份证号码为18位,前6位代表地区代码,接着的8位是出生日期(年月日),第14到17位是顺序码(奇数分配...
QC-LDPC码(Quasi-Cyclic Low-Density Parity-Check Code,准循环低密度奇偶校验码)是一种在编码理论中被广泛应用于各种通信标准(例如5G地面移动通信标准、DVB-S2卫星传输标准等)的纠错码。其特点在于它具有良好...