陈红桥文献翻译.doc

基于MATLAB的卷积码编译码器设计

收藏

压缩包内文档预览:
预览图 预览图 预览图 预览图 预览图 预览图 预览图 预览图 预览图 预览图 预览图 预览图 预览图 预览图 预览图 预览图 预览图
编号:36655461    类型:共享资源    大小:538.92KB    格式:RAR    上传时间:2020-01-03 上传人:遗**** IP属地:湖北
25
积分
关 键 词:
基于 MATLAB 卷积码 译码器 设计
资源描述:
基于MATLAB的卷积码编译码器设计,基于,MATLAB,卷积码,译码器,设计
内容简介:
长安大学毕业设计(论文)成绩评定书 信息工程 学院毕业设计(论文)答辩委员会于 2014 年 6 月 17 日审查了 电子信息工程 专业学生 陈红桥 的毕业论文: 基于MATLAB的卷积码编译码器设计 。根据院答辩委员会的评分原则,评定该同学毕业设计(论文)成绩为: 中等 。 长安大学 信息工程 学院答辩委员会2014 年 6 月 毕业设计任务书课题名称 基于MATLAB的卷积码编译码器设计 学院(部) 信息工程学院 专 业 电子信息工程 班 级 24031001 学生姓名 陈红桥 学 号 2403100107 3 月 9 日至 6 月 15 日共 14 周指导教师(签字) 教学院长(签字) 2014 年 2 月 20 日一、设计内容设计出基于MATLAB的(2,1,3)卷积码编译码器,工作内容含:1、依据卷积码基本原理,结合卷积码编码一般原理方框图,完成(2,1,3)卷积码的编码;2、在Viterbi译码基本原理基础上,完成Viterbi译码原理方框图;3、设计部分,采用MATLAB语言进行编程,完成卷积码编译码过程的仿真,并分析其性能。二、设计原始资料该设计应用以下资料:1、通信原理相关书籍;2、MATLAB的相关材料;3、卷积码编译码基本原理的资料;4、MATLAB应用于通信仿真的相关资料。三、设计完成后提交的文件和图表1、计算说明书部分:提供下列模块的分析及说明:(1)卷积码编码的解析表述;(2)Viterbi译码的计算过程。2、图纸部分:提供下列图形的说明:(1)卷积码编译码原理方框图;(2)卷积码编译码的时序仿真图;(3)卷积码性能分析仿真图。四、毕业设计(论文)进程安排序号 设计(论文)各阶段名称 日期(教学周)1 查阅资料,复习卷积码的相关知识 3月9日-3月23日(第1-2周)2 安装并进一步学习MATLAB软件 3月24日-3月30日(第3周)3 初步的软件仿真 3月31日-4月22日(第4-6周)4 完善程序 4月23日-5月2日(第7周)5 通过仿真分析卷积码性能 5月3日-5月20日(第8-10周)6 撰写论文 5月21日-6月10日(第10-13周)五、主要参考资料1 郝建军,桑林,刘丹谱,罗涛编著,数字通信(第2版).北京邮电大学出版社.20102 张忠培,史治平,王传丹编著. 现代编码理论与应用. 北京:人民邮电出版社.20073 傅祖芸,赵建中编著,信息论与编码,电子工业出版社,20104 樊昌信,曹丽娜编著,通信原理(第6版),国防工业出版社,20115 邓华Matlab通信仿真及应用M北京:人民邮电出版社,20006 王新梅,肖国镇纠错码一原理与方法西安,西安电子科技大学出版社,2001,47 孟夏, 申敏, 王飞.TD-SCDMA中(2,1,9)卷积编码及其VITERBI译码算法的S IMULINK S-FUNCTION实现J.通信技术,2008,41(8):26-30.8 徐文燕通信原理M.北京:北京邮电学院出版社,20089 张忠培,史治平,王传丹编著. 现代编码理论与应用. 北京:人民邮电出版社.200710 (美)S. Lin and D. J. Costello 著. 晏坚,何元智,潘亚汉等译. 差错控制编码.11 张忠培,史治平,王传丹编著. 现代编码理论与应用. 北京:人民邮电出版社.200712 仇佩亮信息论与编码高等教育出版社.13 徐文燕通信原理M.北京:北京邮电学院出版社,200814C. E. Shannon. “A mathematical theory of communication” . Bell Systems Technical Journal, vol. 27, pp. 379-423, July 1948.15C. Berrou, A. Glavieux, and P. Thitimajshima. “Near shannon limit error correctioncoding and decoding: Turbo codes” . in Proc. IEEE Int. Conf. Commun. , pp.10641070, 1993.16蔡涛等译无线通信原理与应用M北京:电子工业出版社,1999:174-179长安大学毕业设计(论文)开题报告表课题名称基于MATLAB的卷积码编译码器设计课题来源自选题目课题类型工程设计指导教师王选民学生姓名陈红桥学 号2403100107专 业电子信息工程(内容包括:课题的意义,国内外发展状况,本课题的研究内容、方法、手段及预期成果,任务完成的阶段安排及时间安排,完成任务所具备的条件因素等。) 课题意义:在移动通信系统中,数字信号在无线信道中传输时,由于信道自身条件特性的不理想,会受到诸多噪声干扰的影响,因而产生误码。为了在已知信噪比的情况下达到一定的误码率指标,除在合理设计基带信号,选择调制解调方式,并采用信道均衡,分集等措施的基础上,还应使用信道编码与交织,使误码率进一步的降低。差错控制编码已经十分成熟的应用于信道编码技术之中。卷积码和分组码是差错控制编码的两种主要形式,在编码器复杂度相同的情况下,卷积码的性能优于分组码,因此卷积码几乎被应用在所有无线通信的标准之中。如:1.低码率卷积码应用于扩频通信系统2.VD及VLSI的实现3.卷积码UEP方案用于分等级传输4.语音压缩5.卷积码纠错用于多媒体广播系统国内外发展状况:卷积码又称连环码,最早于1955年由Elias等人提出。而后1957年Wozencraft提出了一种有效的译码方法即序列译码。1963年Messey提出了一种性能稍差但比较实用的大数逻辑译码即门限译码,使卷积码开始应用与实际。1967年Viterbi提出了最大似然译码算法,被称为Viterbi译码。Viterbi译码作为最优译码算法,有如下特点:维特比算法是最大似然的序列译码算法译码复杂度与信道质量无关运算量与码长呈线性关系存贮量与码长呈线性关系运算量和存贮量都与状态数呈线性关系状态数随分组大小k及编码深度m呈指数关系卷积码在现代通信中已被广泛应用。本课题的研究内容:熟练掌握卷积码的编码及Viterbi译码原理:编码原理:卷积码在编码时将k比特的信息段编成n个比特的码组,监督码元不仅和当前的k比特信息段有关,而且还同前面m=(N-1)个信息段有关。通常将N称为编码约束长度,表示编码过程中相互约束的码段个数。编码过程中相互关联的码元有n*N个。R=k/n为编码效率。约束长度和编码效率是衡量卷积码的两个重要参数。一般来说,卷积码中k和n的值是比较小的整数,而N可取较大。将卷积码记作(n,k,N)。维特比译码算法基本原理是:将接收到的信号序列和所有可能的发送信号序列比较,选择其中汉明距离最小的序列认为是当前发送序列。在此基础上对卷积码的编译码进行仿真并分析其性能。本课题的研究方法:首先系统学习卷积码编译码的相关知识,熟练掌握其基本思想和编译码方法。然后复习Matlab的基本操作,进一步学习其通信仿真及应用。最后将二者结合应用到实验中去,完成卷积码编译码过程的仿真。本课题的研究手段:查阅卷积码的相关书籍,并在网上搜索相关资料作为补充。安装和学习使用Matlab软件。本课题的研究成果:成功利用MATLAB对卷积码的编译码过程进行仿真,并通过分析了解了卷积码的性能。任务完成的阶段安排及时间安排: 3月9日-3月23日查阅相关书籍资料,系统学习卷积码的编译码原理,并开始撰写开题报告。3月24日-3月30日安装Matlab软件,进一步学习其操作与应用。3月31日-4月22日编写编译码程序,初步完成卷积码的编译码仿真。4月23日-5月2日逐步完善程序和仿真过程。5月3日-5月20日通过实验结果来分析卷积码的性能。5月21日- 6月10日撰写论文。6月11日-6月15日修改论文并为答辩做准备。6月17日答辩。任务所具备的条件因素:对卷积码及其编译原理的深入了解;对Matlab这一软件的熟练使用;老师和同学的悉心帮助。等指导教师意见及建议: 指导教师签名: 年 月 日注:1、课题来源分为:国家重点、省部级重点、学校科研、校外协作、实验室建设和自选项目;课题类型分为:工程设计、专题研究、文献综述、综合实验。 2、此表由学生填写,交指导教师签署意见后方可开题。外文文献:A Comparative Study of Viterbi and Fano Decoding Algorithm for Convolution CodesKapil Gupta, P.K.Ghosh, R.N Piplia and Anup Dey*Mody Institute of Technology & Science, Faculty of Engineering & Technology ECE Department, Lakshmangarh, District Sikar, Rajasthan-332311, India * Modi Institute of Technology/ECE Department, Kota, Rajasthan, India *Kalyani Government Engineering College/ECE Department, Kalyani, West Bengal, India. Abstract.In this paper, simulation of Viterbi decoder and Fano decoder for decoding the convolutional codes in AWGN channel is carried out. Graphs are plotted between Viterbi algorithm and Fano algorithm for decoding the convolutional codes of fixed code rate and fixed constraint length. Result shows that performance of Viterbi decoder is better than Fano decoder for the same code rate, constraint length and decoding delay.1 Introduction Error correction coding has 50 years of history, as early as in 1948, Shannon (Shannon)s seminal paper a mathematical theory of communication in his, first expounded the methods of reliable communication in noisy channels, made famous by the noisy channel coding theorem, laid the cornerstone of the error correcting codes. Later, error correcting codes are more and more communication and mathematics educators, especially the mathematicians attention, the error correcting code both in theory and in practice has been the rapid development.With the development of modern communication, especially in the future 4G communication network, high-speed information transmission and high reliability transmission become the two main aspects of information transmission, and the reliability is especially important. Because the channel condition is bad, signals are inevitably disturbed error. In order to realize the reliability of communication, there are two main ways: one is to increase the power of the transmitted signal, improve the signal noise ratio of receiving end; another method is adopted to control the channel error code. The former often subject to conditions, not all cases can be used. For example, satellite communication system to transmit data to the far distance, due to the influence of fading, noise and interference, signal produce serious distortion in the transmission process. If the signal has the largest possible energy, satellite volume and load will increase greatly, so that the cost of greatly increased compared to the original, so impossible to signal to provide too much energy, and the Shannon based on coding theory can solve this problem, reduce the cost, practicability. Forward error correction (FEC) is a very important part of the wireless digital communication system is a convolutional coding. It is an effective channel coding method, widely used in practice. At present, wireless digital communication systems use some form of convolution code such as W-CDMA, DVB-S, DVB-T, IEE802.11 system using convolutional code. Because of its excellent error correction performance, generally in the concatenated code as inner code, thus ensuring the outer code work effectively, greatly improving the error correcting capability of the whole system. While the Viterbi decoder is one of the best methods for decoding convolutional codes.Characteristics of CDMA system with its large capacity, strong anti-interference ability to become the third generation mobile communication system standard. Channel coding of CDMA system mostly adopts convolutional coding, this is because the error correcting capability of convolution code is strong, not only can correct random errors, but also the burst errors. In the CDMA system, the decoding of convolutional codes used in the Viterbi algorithm, it is a kind of maximum likelihood decoding method, when the code constraint length, or a little bit error rate requirement is not very high, the Viterbi decoder relatively simple equipment, fast calculation speed, so that the Viterbi decoder has been widely applied in various fields.In modern communication, with the transmission rate of the signal sequence of continuous improvement, requirements of convolutional code decoding speed also need to constantly improve, Viterbi decoding and has the best performance because of the characteristics of full use of signal sequence statistical probability. The application field of channel coding include deep space communications, satellite communications, mobile communications, data transmission, file transfer and digital audio / video transmission. Convolutional codes as channel coding mode is the most important one, is widely used in satellite communication, UAVs, deep space communications, mobile communications, underwater acoustic communication, digital communication systems, or even be adopted to some wireless communication standards, such as GSM, IS.95 and CDMA2000 standards. In satellite communications, convolutional code has rate for 1/2 and 1/3 become the standard coding method in commercial satellite communications system. In UAV telemetry and telecontrol system, improve the control instruction transmission error with the traditional channel, coding of UAV remote control channel using convolutional codes, under certain channel conditions, the control command transmission error decreased significantly. In the code rate does not increase under conditions of UAV system, control command transmission reliability is improved obviously.With the continuous expansion of business in the digital communication system, with the continuous development and improvement of the theory of convolution code, convolutional codes will be applied more and more widely, convolutional codes now in communication system function will become more and more large. In the recent years, there has been an increasing demand for efficient and reliable digital data transmission and storage systems. A major concern of the designer is the control of errors so that reliable reproduction of data can be obtained at the receiver end. The system parameters available to the designer are the transmitted signal power and the channel bandwidth. These two parameters together with the power spectral density of the receiver noise, determine the signal energy per bit-to-noise power spectral density ratio Eb/No. For a fixed Eb/No, the only practical option available for changing data quality from problematic to acceptable level is to use Error Control Coding. Error correction coding is essentially a signal processing technique used to improve the reliability of communication system in digital channels. There are two kinds of forward error correction techniques, namely block codes and convolutional codes1. Conceptually, encoder for the block code is a memory-less device, which maps k-symbol input sequence into n-symbol output sequence. The term “memory-less” indicates that each nsymbol block depends only upon a specific k-symbol block. The encoder for convolutional code is a device with memory that accepts binary symbols in set of k bits and output binary symbols in set of n bits. Each set of n output code symbols are determined by the current input set and a span of v of the preceding input symbols. For convolutional codes, two important decoding techniques are rigorously used in various communication systems are Fano decoding and Viterbi decoding. Fano decoding can perform very well with longconstraint length convolutional codes, but it has a variable decoding time . Viterbi decoding is a dominant decoding technique for convolutional codes, and has advantage of highly satisfactory bit error rate performance, high speed operation, ease of implementation and low cost. In digital communication, SNR is usually measured in terms of Eb/No which stand for energy per bit divided by the one-sided noise density. The usual measure of performance of a coded system is the average error rate that is achieved at a specified signal to noise ratio. The interleaved (2, 1, 7) convolution codes with Viterbi decoding are adopted as an anti-interference scheme in mobile image communication system. A better bit error rate (BER) performance is obtained by preparing more codes for the biorthogonal system than in conventional direct sequence spread spectrum (DS/SS) systems using binary convolutional coding methods. Decoder delay is one of the most important aspect by which we are in the position to select the decoding algorithm for decoding the convolutional codes for various communication systems. The organization of this paper is as follow. Section II describes the convolutional encoder. Decoding algorithm for convolutional codes is described in section III. Results are shown in section IV. Finally, conclusion is drawn in section V. 2 Convolutional encoder During encoding, k input bits are mapped to n output bits to give rate k/n coded bit stream. The encoder consists of a shift register of K stages, where K is described as the Constraint length of the code. Convolutional encoders are physically constructed by using shift registers with taps determined by the generator functions. The rate of the encoder is defined as the ratio of input to the output symbols. The number of taps on the shift register determines how many of the output bits are influenced by the input bits. The number of influenced output bits is called the Constraint Length. A convolutional code looks very much like a discrete time filter. Instead of having a single input and output stream, however, we have k input streams and n output streams.Figure 1. Convolutional Encoder for K=3, Rate=1/2 An Encoder is illustrated in Figure 1 for K=3 and v=2. Here M1 through M3 are 1-bit storage devices such as lip-flops. The output v1 and v2 of adder are given by v1=s1s2s3 (1)v2=s1s3 (2) The operation of the encoder proceeds as follows: The shift register is assumed to be clear initially. The 1st bit of the input data stream is entered into M1. During this message bit interval the commutator samples and the adder output are v1 & v2. The next message bit enters M1 while the previous bit in M1 transfers to M2 and the commutator again samples all the v adder outputs. This process continues until eventually the last bit of the message has been entered into M1. Thereafter in order that every message bit may proceed entirely through the shift register to complete process, 3 zeros are added to the message to transfer the last bit of the message to M3 and hence out of the shift register. The shift register then finds itself in its initial clear condition again. Table 1 describes the encoder stages for K=3, rate encoder of Figure 1. Table1. Encoder stages for K=3, code rate=1/2. The tree representation of this encoder is displayed in Figure 2. In accordance with customary practice. The starting node of the code tree at the left; take the initial state of the shift register 00, taking M1M2 = 00, represented by a, and the dimension in which a starting node. When the input symbol is 0, starting from the node onto the slip; when the input symbols are 1:00 slip down from the departure node. For example, when the encoder is first input bit is 0, then embarked on a branch, then the shift register output code 000 is written in the top of the upper branch of the bifurcation; encoder when the first bit is input 1:00, then walked down the slip road, then the output of the shift register code 111 is written above the figure under the branches of a tree branch. In a second input bit, the shift register right one, then to the shift register of the branch status of the case 00, i.e., a, and marked on the branch node; conditions under which lower leg The shift register state O1, namely b, and marked in the lower branch node; while upper and lower arms are two branches of a tree. After each new input bits will cause upper and lower arms of each of two branches of a tree. After four input bits, the encoder to get the tree shown in Figure 2-3. Tree graph, a node represents a marked M1M2 = 00, b represents M1M2 = O1,. C represents M1M2 = 10, d represents M1M2 = 11.Figure 2. Tree representation of encoder(rate=1/2,K=3) 3 Decoding algorithm for convolutional codes Convolutional code decoding method can be divided into two categories: algebraic coding and decoding probability. Generation decoding encoded using algebraic structure itself decoded without considering the statistical characteristics of the channel. Majority logic decoding, also known as threshold decoding of convolutional codes is the most important one algebraic decoding method to be applied to the decoding cyclic codes. Most effective for large numbers logic decoding constraint length of the convolutional code shorter and simpler equipment. Probability decoding (also known as the maximum likelihood decoding) is based on the statistical characteristics of the channel characteristics and the convolutional code is calculated. One of the first sequential decoding Waugh had no memory channel for Kraft is proposed probabilistic decoding method; Another approach is probabilistic Viterbi decoding (Viterbi) algorithm. When the constraint length of the code is shorter, it is more efficient than the sequential decoding algorithm, faster, and is currently widely used.The basic idea of probability decoding of convolutional codes is: to the receiving stream based computing it, and all other possible, continuous grid graph path distance one by one, choose the most likely estimate as a decoding output. Maximum probability in most of the cases can be interpreted as the minimum distance, the minimum distance decoding is a reflection of the maximum likelihood criterion. The maximum likelihood decoding maximum likelihood decoding of convolutional codes and block codes are the same in principle, but on a slightly different implementation method. The main difference is that: block codes is similarity in isolation for single codes, and convolutional codes is to find the similarity between the codeword sequence. Decoding trellis based search is an important way to achieve the maximum likelihood decision. A trellis description, because the path together to eliminate the dendrogram of redundancy, the decoding process only need to consider the entire path set the path of the likelihood function. If at some point found a path has not been possible to obtain the maximum log likelihood function, give up this path, and then in the rest of the survival path rerouting. This has to end the class L (L for sending sequence length). Because this method had rejected the impossible path, thus reducing the workload of Viterbi decoding, decoding is based on this idea. Viterbi decoding algorithm is proposed in 1967. The basic principle of this algorithm is that the received signal sequence and the sequence of all possible transmitted signal comparison, select the minimum Hamming distance of the transmission signal sequence is the sequence considered current. If you send a k-bit sequence, there are 2k possible transmit sequence. When K is large, the storage capacity is too large, so that practical restrictions. In this regard the Viterbi algorithm has been simplified to enable practical. There are a variety of algorithms for decoding the received coded information sequences to recover the original data. Viterbi algorithm is one of the practical techniques. Viterbi decoding algorithm:Viterbi algorithm steps are summarized below: The equivalence between maximum likelihood decoding and minimum distance decoding for a binary symmetric channel implies that a convolutional code may be decoded by choosing a path in the code tree whose coded sequence differs from the received one in the fewest number of places. The change of stages for the input bits is shown in Figure 3. Since a code tree is equivalent to a trellis, trellis representation is considered as depicted in Figure 4. Figure 3: Encoder Input bits and output symbolsFigure 4: The trellis for t=17 for given input. Grid graph can describe the convolutional codes and transfer with the passage of time case. The ordinate represents all state, the abscissa represents time. Grid map in the probability of decoding of convolutional codes is very important, especially in Viterbi decoding, it combines the state graph method is intuitionistic and simple and tree method sequential relationship clear characteristics. The reason for preferring the trellis over the tree is that the number of nodes at any level of the trellis does not continue to grow as the message bit increases; rather, it remains constant at 2K-1, where K is the constraint length of the code. The Viterbi algorithm operates by computing a metric or discrepancy for every possible path in the trellis. The metric for a particular path is defined as the Hamming distance between the coded sequence represented by the path and the received sequence. Thus, for each node (state) in the trellis, the algorithm compares the two paths entering that node. The path with lower metric is retained while the other path is discarded. The paths that are retained by the algorithm are the survivors. The Viterbi algorithm proceeds in a step-by-step fashion as follows: Initial step Label the left most state of the trellis (i.e., the all zero state at level 0) as 0, since there is no discrepancy at this initial point in the computation. Computation step j+1 All survivor paths have been identified. The survivor path and its metric for each state of the trellis are stored. Then at level j+1, compute the metric for all the paths entering each state of the trellis by adding the metric of the incoming branches to the metric of the connecting survivor path from level j. For each state, identify the path with the lowest metric as the survivor of the step j+1, thereby updating the computation. Final step Continue the computation until the algorithm completes its forward search through the trellis and reaches the termination node (i.e., all zero state). At this time it makes the decision on the maximum likelihood path. Then, the sequence of the symbols associated with that path is released to the destination as the decoded version of the received sequence. After initial step, a decision is then made on the “Best” path and the symbol associated with the last branch on the path is dropped. Next, the decoding window is forwarded one time interval, and the decision on theGnext code frame is made, and so on. For the above-mentioned steps, the encoder trellis diagram and the survivor path are shown in Figures 5 and 6, respectively. Figure 5. Encoder trellis diagram Figure 6. Tracing of right path Once this information is built up, the Viterbi decoder is ready to recreate the sequence of bits that were inputted to the convolution encoder. This is accomplished by the following steps: 1.First, select the state having the smallest accumulated error metric and save the state number of the state. 2.Iteratively perform the following step until the beginning of the trellis is reached: Working backward through the state history table and for the selected state, select a new state which is listed in the state history table as being the predecessor to that state. Save the state number of each selected state. This step is called Trace back.Now work forward through the list of selected states saved in the previous steps. Look up what input bit corresponds to a transition from each predecessor state to its successor state. Table 2 shows the accumulated metric for full 15 bit (plus two flushing bits) message at each time t. It is interesting to note that for this hard decision input Viterbi decoder example, the smallest accumulated error metric in the final state indicates how many channel symbol errors occurred. Table 2. Accumulated metric for t=17 Table 3 shows the states selected when tracing the path back through the survivor state.Table 3: Selected metric when traced backward. Fano decoding algorithm:The Fano decoding algorithm searches for the most probable path through the tree or trellis by examining one path at a time. The increment added to the metric along for that branch and a negative constant is also added to each branch metric. The value of the negative constant is chosen such that the metric for the correct path will increase on the average while the same for the incorrect path will decrease on the average. By comparing the metric of the paths with increasing threshold, Fano algorithm detects and discards the incorrect paths. The advantage of Fano decoding is that such decoding allows the decoder to avoid the lengthy process of testing every branch of the possible 2K branches of the code tree in the decoding of single message bit. It proceeds from node to node, taking the most probable branch at each node and increasing the threshold such that the threshold is never more than some pre-assigned value, say , below the metric. If decoder takes an incorrect path because of noise, it appears more probable than the correct path. Since the metric of an incorrect path decreases on the average, the metric will fall below the current threshold, say, o When this occurs, the decoder backs up and takes alternate path through the tree in order of decreasing branch metrics, with an aim to find another path that exceeds the threshold o .If it is successful in finding the alternative path, it continues along the path, always selecting the most probable branch at each node. On the other hand, if no path exists that exceeds the threshold othe threshold is reduced by an amount and the original path is retraced. If the original path does not stay above the new threshold value, the decoder resumes its backward search for another path. This procedure is continued, with the threshold reduced by for each repetition, until the decoder finds a path that remains above the threshold value. In Fano decoding at the arrival of first v message bits the decoder compares these bits with the two branches diverging from the starting node. If one of the branches matches exactly with these v code bits, then the encoder follows this branch. If there are errors in received bits due to noise, the encoder follows the branch with less discrepancy. At the second node a similar comparison is made between the diverging branches and the second set of bits and so on at succeeding nodes. If in the transmission of any v bits, branch errors have found more than half of the bits, then at the node from which the branch diverges, the decoder will make mistake. For such case the entire decoding on this path must be in error. To combat this, the decoder keeps a record of the total number of discrepancies between the received code bits and the corresponding bits encountered in the path. The decoder is programmed in such a way that it retraces its path back to the node at which the apparent errors has taken place and choose an alternative branch out of the node. In this way the decoder will find a path through K nodes. Steps involved in simulation of communication channel using convolution encoding with Viterbi and Fano decoding are as follows: (1) Generation of input bits- binary data. (2) Pass data from convolution encoder to produce channel symbols. (3) Add noise to the transmitted channel symbol. This is the received channel symbols. (4) Pass the received channel symbols from Viterbi and Fano decoder. (5) Comparison is made between the decoded data bits and the input bits. (6) Count the number of errors. (7) Repeat the process for multiple Eb/No values. (8) Plot the graph between BER and Eb/No.4 Result Monte Carlo simulations are performed, five independent trials are carried out and their average is plotted. As illustrated in Figure 7, the plot is for the BER of decoding of convolutional codes using Viterbi decoder for constraint length K=3, Rate=1/2 and decoding delays D = 4, 5 and 6 times of constraint length. For a bit error rate of 10-3 for decoding delay D=4K, 5K & 6K, the SNR is 5dB, 4.1 dB & 3.6 dB respectively. If we take the decoding delay of 5K or 6K then the gains come out 0.9dB or 1.4dB as compared to the decoding delay of 4K respectively for the same constraint length K=3. Figure 7. Performance of Viterbi decoder Rate=1/2, K=3, Delay=4K, 5K and6KFigure 8 shows the plots of the BER of Viterbi decoder for Constraint length K=3, Rate=1/2, decoding delay D= 5K and Fano decoder. Performance of Viterbi decoding delay of 5K is much better than that of Fano sequential decoder. The difference in SNR is about 5dB.Figure 8. Performance of Viterbi& Fano decoder for R=1/2, K=3, D=5KFigure 9 depicts the plot of BER of Viterbi decoder for Constraint length K=3, Rate=1/2, decoding delay D= 6K and Fano sequential decoder for the same constraint length K=3. The gain in SNR for the BER of 10 is found to be 4.1 dB. Hence the performance of Viterbi decoder with decoding delay 6K is better than that of Fano sequential decoder. Figure 9. Performance of Viterbi & Fano decoder for R=1/2, K=3, D=6K According to the different rate, different constraint length, different trace length, and different decision mode bit error rate analysis, draw the following conclusion: (1) when the code constraint length is small, when the bit rate is constant, with the decrease of the channel noise, the bit error rate of the system decreased. (2) when changing the system bit rate, increased gradually with the convolutional code rate, the bit error rate of the system also showed increasing trend, that is to say the bit rate is low, the bit error rate of the system is smaller, the BER performance is better. For the binary symmetric channel, when using BPSK modulation, the rate is usually selected for 1/2. (3) for the rate of convolutional codes, when the constraint length N is changed, the BER performance of the system will be changed, with the gradually increasing the constraint length, the bit error rate of the system decreased, so that when the bit rate is constant, increasing the constraint length can reduce the bit error rate of the system, but, with the increasing the constraint length, complexity of decoding equipment will also increase. So for the rate 1/2 convolutional codes, when choosing the constraint length is 39. (4) for the rate of convolutional codes, when the feedback depth changes, the system bit error rate is also changed, with the increase of depth of feedback, the system bit error rate is on a downward trend, but usually at five times the depth of feedback is greater than or equal to the length of the bit error rate constraint, almost no longer change, so often take back length 5N. (5) for the rate of convolutional codes, decoding methods are different, will have an impact, bit error rate of the system in general, soft decision decoding performance is superior to the hard decision decoding performance, but this is to improve the equipment complexity at the expense of.5 Conclusion The numerical results show that the performance of the system increases as the decoding delay increases in case of Viterbi decoding. For Viterbi decoding when delay D=6K required SNR is 3.9 dB, for D=5K required SNR is 4.1dB. For D=5K, Rate=1/2, K=3 required SNR is 9 dB in case of Fano decoding and 4.1dB in case of Viterbi decoding. The gain in SNR for the BER of 10 -3 is 4.1dB for D=6K, Rate=1/2 and K=3.The overall performance of the Viterbi decoding algorithm is better than that Fano algorithm for same decoding delay. Convolutional code is an error-correcting coding, error correction coding has fifty years of history, back in 1948, Shannon (Shannon) in his seminal paper Mathematical Theory of Communication, the first time there is interference clarified methods to achieve reliable communication channel, made famous have scrambled channel coding theorem, laid the cornerstone of the error-correcting codes. After error correction code has been more and more communication and mathematical workers, especially the attention of mathematicians, error correction code either in theory or in practice have been rapid development.By decoding algorithm simulation, it can be seen, the Viterbi decoder equipment is relatively simple calculation speed Viterbi decoder is thus widely used in various fields. In particular, is widely used in satellite and deep space communications, inter-symbol interference in the settlement and data compression can also be used.Modern communication, with the increase of the transmission rate of the signal sequence required for decoding convolutional codes must constantly increase the speed, Viterbi decoding By fully utilizing the statistical probability characteristic signal sequence having the best performance. Channel coding applications including deep space communications, satellite communications, data transmission, mobile communications, file transfer and digital audio / video transmission. Convolution encoder as a channel coding is the most important one, is widely used in satellite communications, unmanned aerial vehicles and control, deep space communication, mobile communication, underwater communication and other digital communication system, and even been adopted to some wireless communication standard Among such as GSM, IS.95 and CDMA2000 standards. In satellite communications, a code rate of 1/2 and 1/3 convolutional code has become a commercial satellite communications system standard encoding method. Control of the UAV, with traditional channels to improve the way the control command transmission errors compared to the use of convolution codes UAV remote channel coding, channel, under certain conditions, the control command transmission error has decreased significantly. Under the conditions of the code rate does not increase, the control command transmission reliability UAV system has been significantly improved.Compile the convolutional code decoding algorithm in the process of research, I learned a lot about convolutional code knowledge, a more profound understanding to the error correcting performance of the convolutional codes. But because of the lack of time and personal ability, research and some places do not reach the designated position, no study has some areas, worthy of further improvement.As in the transmission process, this paper considers only the BPSK channel coding, without the use of QPSK code more complex, so there is no impact on different ways to channel coding convolutional codes error performance. Many decoding method of convolutional code, this paper makes a primary study on Viterbi decoding algorithm, the decoding other ways, such as algebraic decoding and sequential decoding, not been studied and compared in detail, so cant study different decoding of convolutional codes error performance impact.Convolutional code has since raised the attention, and showed great superiority, with the progress of communication technology, convolutional codes will be greater development, will bring more new form of convolution code, and further optimize the performance of communication system.References1 Sab, O.A., “Forward error correction techniques” IEEE proc., vol 1, pp. 391, 2003. 2 Lin, ming-bo,” New path history management circuits for Viterbi Decoders” IEEE transactions on communication, vol.48, October, 2000, pp 1605-1608. 3 V.Pless, Introduction to the theory of error- correcting codes, 3rd edition new York: John Wiley & Sons , 1998. 4 Leon W. Couch,II “Digitaland Analog Communication Systems”, Pearson Education. 5 J.Proakis, “Digital Communication”,McGraw-Hill New York, 1991.6 G.D.Forney,Jr.,”Convolutional Codes II: Maximum- Likelihood decoding” Information Control, vol.25, June, 1974, pp. 222-226.文献翻译:Viterbi和费诺译码算法的卷积码的比较研究卡皮尔古普塔,P.K.霍士,R.N 皮普利亚和阿努普戴伊印度拉贾斯坦Lakshmangarh区,Sikar工程与技术学院 ECE系,Kota,拉贾斯坦,印度莫迪研究所 卡利尼政府工程学院/ ECE系,西卡利亚尼摘要:在本文中,模拟维特比解码器和Fano的解码器,用于在AWGN信道进行解码的卷积码的进行。图表是维特比算法和的Fano算法之间绘制解码的固定码速率和固定约束长度的卷积码。结果表明,维特比解码器的性能比的Fano译码器对同一编码率,约束长度和解码延迟更好。1、 引言 纠错编码己有五十几年历史,早在1948年,香农(Shannon)在他的开创性论文“通信的数学理论”中,首次阐明了在有扰信道中实现可靠通信的方法,提出了著名的有扰信道编码定理,奠定了纠错码的基石。以后,纠错码受到了越来越多的通信和数学工作者,特别是数学家的重视,使纠错码无论在理论上还是在实际中都得到了飞速发展。随着现代通信的发展,特别是在未来4G通信网络中,高速信息传输和高可靠性传输成为信息传输的两个主要方面,而可靠性尤其重要。因为信道状况的恶劣,信号不可避免会受到干扰而出错。为实现可靠性通信,主要有两种途径:一种是增加发送信号的功率,提高接收端的信号噪声比;另一种是采用编码的方法对信道差错进行控制。前者常常受条件限制,不是所有情况都能采用。例如卫星通信系统以很远的距离传送数据,由于衰落、噪声和干扰等的影响,信号在传输过程中将产生严重的畸变。如果要求信号具有尽可能大的能量,卫星体积和载重就会大大增加,使成本相对于原来大大增加,所以不可能给信号提供太大的能量,而建立在香农基础上的编码理论正可以解决这个问题,使得成本降低,实用性增强。前向纠错技术(FEC)特别是卷积编码是当今无线数字通信系统的一个十分重要的组成部分。它是一种有效的信道编码方法,在实际中广泛应用。目前无线数字通信系统都采用某一形式的卷积编码如在W-CDMA、DVB-S、DVB-T、IEE802.11系统中都使用了卷积编码。由于其出色的纠错性能,一般在级联码中作为内码使用,从而保证外码有效地工作,大大提高了整个系统的纠错能力。而Viterbi译码器正是针对卷积码的一种最佳译码方法。CDMA系统以其容量大、抗干扰能力强的特点成为第三代移动通信系统的标准。CDMA系统的信道编码大多采用卷积编码,这是因为卷积码的纠错能力强,不仅能纠随机差错,还可以纠突发差错。在CDMA系统中,对卷积码的译码采用Viterbi算法,它是一种最大似然译码方法,当编码约束长度不大、或者误码率要求不是很高的情况下,Viterbi译码器设备比较简单,计算速度快,因而Viterbi译码器被广泛应用于各种领域。现代通信中,随着信号序列的传输速率的不断提高,要求卷积码译码的速度也要不断提高,Viterbi译码由于充分利用信号序列统计概率的特性而具有最佳性能。信道编码的应用领域主要包括深空通信、卫星通信、数据传输、移动通信、文件传输和数字音频/视频传输等。卷积编码作为信道编码方式中最重要一种,被广泛使用于卫星通信、无人机测控、深空通信、移动通信、水声通信等数字通信系统,甚至被采纳到某些无线通信的标准之中,如GSM、IS.95和CDMA2000的标准。在卫星通信中,码率为1/2和1/3的卷积码己经成为商业卫星通信系统中的标准编码方法。在无人机测控中,与传统的信道改善控制指令传输误码的方式比较,利用卷积码对无人机遥控信道进行编码,在一定信道条件下,其控制指令传输误码有明显下降。在码速率不增加的条件下,无人机系统控制指令传输可靠性得到明显改善。随着数字通信系统业务的不断拓展,随着卷积编码理论的不断发展和完善,卷积码的应用必将越来越广泛,卷积码在现在通信系统中的作用必将越来越大。 在最近几年,出现了对于有效和可靠的数字数据传输和存储系统的需求日益增加。设计师的一个主要担忧是错误的控制,使可靠的再现数据可以在接收端获得。提供给设计师的系统参数是所发射的信号功率和信道带宽。这两个参数与接收机的噪声的功率谱密度一起,确定每比特的噪声功率谱密度的比率Eb / No的信号能量。对于一个固定的Eb / No,唯一可行的选项可用于改变数据质量的问题,以可接受的水平是使用差错控制编码。纠错编码实质上是一种用于改善通信系统中的数字信道的可靠性的信号处理技术。有两种类型的前向纠错技术,即分组码和卷积码。在概念上,用于块码编码器是一个无记忆装置,它映射k-码元序列输入到n-码元的输出序列。术语“存储器少”表示每个n-码元块仅依赖于特定的k-码元块。该编码器为卷积码是设备与存储器接受二进制符号在组k个比特和输出二进制符号在组n比特的。各组n个输出代码的符号由当前输入集和前面输入的符号v的一个跨度来确定。对于卷积码,两个重要的解码技术是严格在各种通信系统中使用的是Fano的译码和维特比解码。法诺解码可以长期约束长度的卷积码的表现非常好,但它有一个可变的解码时间。维特比解码是对卷积码的显性解码技术,并且具有优势的非常令人满意的误码率性能,高速运行,易于实施且成本低。在数字通信中,信噪比通常是衡量的Eb / No的条款,代表每比特能量由片面噪声密度划分。其编码系统的性能通常的措施是在指定的信噪比达到的平均误码率。交错的(2,1,7)与维特比解码的卷积码被采用为在移动图像通信系统中的抗干扰方案。通过制备的双正交系统中比在常规的直接序列扩频(DS/ SS)使用二进制卷积编码方法的系统更多代码获得更好的误码率(BER)性能。解码延迟是最重要的方面,使我们能在位置来选择译码算法,用于解码各种通信系统的卷积码中的一个。本文的组织如下。第二节描述的卷积编码器。译码算法卷积码在第三节中描述。结果示于第四节。最后,得出第五节的结论。二、卷积编码器 在编码时,k个输入位映射到n个输出位给率k/ n个编码比特流。该编码器由K个级的移位寄存器,其中K被描述为代码的约束长度。卷积编码器在物理上构建通过使用移位寄存器与由生成函数来确定抽头。编码器的速率被定义为输入到输出符号的比率。在移位寄存器抽头的数目决定了输出位许多通过将输入比特的影响。影响输出的比特数被称为约束长度。卷积码看起来非常像一个离散时间滤波器。而不是有一个单一的输入和输出流,但是,我们的K输入流和n个输出流。图1 卷积编码器K =3,速率=1/2 一个编码器对于K =3且v =2,如图1所示。在这里,M1到M3的1位的存储设备,如嘴唇的响声。输出v1和加法器V2由下式给出v1=s1s2s3 (1)v2=s1s3 (2) 进入该编码器的操作如下: 移位寄存器被认为是明确的最初。输入数据流的第一比特输入到M1。在此消息位间隔换向器样品和加法器的输出是v1和v2的。接下来的消息位进入M1,而在M1转移到M2的前一位和换向器样品再次所有的V加法器输出。这个过程继续,直到最后的信息的最后一位被输入到M1。此后,以使每封邮件位可能完全进入通过移位寄存器来完成的过程中,3个零添加到消息到消息的最后一位传送到M3,因而出移位寄存器。移位寄存器然后再次发现自己在其初步明确条件。表1描述了编码器的阶段,当K =3,半速率编码器如图1所示。表1 编码器阶段为K = 3,编码率= 1/2。编码器的树形表示显示在图2。按照习惯的做法。码树的起始节点位于左边;移位寄存器的初始状态取00,取M1M2=00,用a来表示,并把该a标注于起始节点处。当输人码元是0时,则由节点出发走上支路;当输人码元是1时.则由节点出发走下支路。例如,当该编码器第一输入比特为0时,则走上支路,此时移存器的输出码“000”就写在上支杈的上方;当该编码器第一输人比特为1时,则走下支路,此时移存器的输出码“111”就写在图中下支杈的上方。在输人第二比特时,移位寄存器右移一位,此时上支路情况下的移位寄存器的状态为00,即a,并标注于上支路节点处;此时下支路情况下的移位寄存器状态为O1,即b,并标注于下支路节点处;同时上下支路都将分两杈。以后每一个新输人比特都会使上下支路各分两杈。经过4个输人比特后,得到的该编码器的树状图如图2-3所示。树状图中,节点上标注的a表示M1M2 =00, b表示M1M2=O1,。C表示M1M2= 10, d表示M1M2=11。图2 编码器的树状图表示(速率= 1/2,K= 3)三、卷积码译码算法 卷积码的译码方式可以分为两类:代数译码和概率译码。代数译码是利用编码本身的代数结构进行译码,不考虑信道的统计特性。大数逻辑译码,又称门限译码,是卷积码代数译码的最主要一种方法,也可以应用于循环码的译码。大数逻辑译码对于约束长度较短的卷积码最为有效,而且设备较简单。概率译码(又称最大似然译码)则是基于信道的统计特性和卷积码的特点进行计算。首先由沃曾克拉夫特针对无记忆信道提出的序贯译码就是概率译码方法之一;另一种概率译码方法是维特比(Viterbi)算法。当码的约束长度较短时,它比序贯译码算法的效率更高、速度更快,目前得到广泛的应用。卷积码概率译码的基本思路是:以接收码流为基础,逐个计算它与其他所有可能出现的、连续的网格图路径的距离,选出其中可能性最大的一条作为译码估值输出。概率最大在大多数场合可解释为距离最小,这种最小距离译码体现的正是最大似然的准则。卷积码的最大似然译码与分组码的最大似然译码在原理上是一样的,但实现方法上略有不同。主要区别在于:分组码是孤立地求解单个码组的相似度,而卷积码是求码字序列之间的相似度。基于网格图搜索的译码是实现最大似然判决的重要方法和途径。用格图描述时,由于路径的汇聚消除了树状图中的多余度,译码过程中只需考虑整个路径集合中那些使似然函数最大的路径。如果在某一点上发现某条路径已不可能获得最大对数似然函数,就放弃这条路径,然后在剩下的“幸存”路径中重新选择路径。这样一直进行到最后第L级(L为发送序列的长度)。由于这种方法较早地丢弃了那些不可能的路径,从而减轻了译码的工作量,Viterbi译码正是基于这种想法。 维特比译码算法是维特比于1967年提出的。这种算法的基本原理是将接收到的信号序列和所有可能的发送信号序列比较,选择其中汉明距离最小的序列认为是当前发送信号序列。若发送一个k位序列,则有2k种可能的发送序列。当K较大时,存储量太大,使实用受到限制。维特比算法对此作了简化,使之能够实用。 有各种各样的用于解码接收到的编码信息序列来恢复原始数据的算法。维特比算法是在实际的技术之一。维特比译码算法:维特比算法的步骤总结如下:最大似然译码,并为二元对称信道的最小距离解码之间的等价性暗示的卷积码可以通过选择在代码树的路径,其编码的序列与从所接收的一个被解码在最少的地方。对输入比特阶段的变化示于图3中,由于一个代码树相当于一个网格,网格表示被认为是在图4所示。图3 编码器输入位和输出符号图4:该网格为t= 17对于给定的输入 网格图可以描述卷积码的状态随时间推移而转移的情况。该图纵坐标表示所有状态,横坐标表示时间。网格图在卷积码的概率译码,特别是Viterbi译码中非常重要,它综合了状态图法直观简单和树图法时序关系清晰的特点。 这样做的原因在网格节点中的格状结构的任何级别的数量不继续增长,因为该消息比特增大;而,它仍然是在2K-1恒定,其中K是代码的约束长度。维特比算法操作通过计算度量或差异在网格每一个可能的路径。度量为特定的路径被定义为通过该路径与接收到的序列所代表的编码序列之间的汉明距离。因此,在网格的每个节点(
温馨提示:
1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
2: 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
3.本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
提示  人人文库网所有资源均是用户自行上传分享,仅供网友学习交流,未经上传用户书面授权,请勿作他用。
关于本文
本文标题:基于MATLAB的卷积码编译码器设计
链接地址:https://www.renrendoc.com/p-36655461.html

官方联系方式

2:不支持迅雷下载,请使用浏览器下载   
3:不支持QQ浏览器下载,请用其他浏览器   
4:下载后的文档和图纸-无水印   
5:文档经过压缩,下载后原文更清晰   
关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服 - 联系我们

网站客服QQ:2881952447     

copyright@ 2020-2025  renrendoc.com 人人文库版权所有   联系电话:400-852-1180

备案号:蜀ICP备2022000484号-2       经营许可证: 川B2-20220663       公网安备川公网安备: 51019002004831号

本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知人人文库网,我们立即给予删除!