导航:首页 > 源码编译 > 卷积码编译器

卷积码编译器

发布时间:2022-06-09 01:55:20

1. 译码的过程是

译码是编码的逆过程,同时去掉比特流在传播过程中混入的噪声。利用译码表把文字译成一组组数码或用译码表将代表某一项信息的一系列信号译成文字的过程称之为译码。译码器是电子技术中的一种多输入多输出的组合逻辑电路,负责将二进制代码翻译为特定的对象(如逻辑电平等),功能与编码器相反。译码器一般分为通用译码器和数字显示译码器两大类。 数字电路中,译码器(如n线-2n线BCD译码器)可以担任多输入多输出逻辑门的角色,能将已编码的输入转换成已编码的输出,这里输入和输出的编码是不同的。输入使能信号必须接在译码器上使其正常工作,否则输出将会是一个无效的码字。译码在多路复用、七段数码管和内存地址译码等应用中是必要的。

假设编码序列为( Λ) 1 2,m m m C = c c ,经过信道传输,接收端收到的信号为R (模拟信号或数字信号,取决于对信道的定义),那么接收端会顺理成章地在所有可能的码序列中寻找条件概率P(C R) m 最大的一个,认为它是最可能的发送序列。即:

C~ Arg{MAX P(C R)} m C mm=这种判决准则称为最大后验概率准则 (MAP)。

算法
viterbi译码算法是一种卷积码的解码算法。缺点就是随着约束长度的增加算法的复杂度增加很快。约束长度N为7时要比较的路径就有64条,为8时路径变为128条。(2<<(N-1))。所以viterbi译码一般应用在约束长度小于10的场合中。

算法规定t时刻收到的数据都要进行64次比较,就是64个状态每条路有两条分支(因为输入0或1),同时,跳传到不同的两个状态中去,将两条相应的输出和实际接收到的输出比较,量度值大的抛弃(也就是比较结果相差大的),留下来的就叫做幸存路径,将幸存路径加上上一时刻幸存路径的量度然后保存,这样64条幸存路径就增加了一步。在译码结束的时候,从64条幸存路径中选出一条量度最小的,反推出这条幸存路径(叫做回溯),得出相应的译码输出

2. 基于图结构应用《编码,译码器》的设计与实现 这个毕业设计应该从什么思路下手啊~~计算机专高手请指点

兄弟你这个论文有点难度了。不是随便拉拉就行了。得找专业书籍慢慢找和高人指导了。
我查到点不指导有没有用。
Turbo卷积码(TCC)是3G无线系统中所采用的前向错误校正(FEC)机制的整体部分。然而,Turbo译码器所带来的计算负担非常重,并不太适合采用传统DSP或RISC处理器实现。由于现场可编程逻辑阵列(FPGA)内在的并行结构,FPGA为解决3G基站收发器中所需要的符号速率FEC和其它计算密集的任务提供了一个高性能信号处理平台基础。

Turbo 编码

级联码方案(Concatenated coding schemes)是为了通过结合两个或更多相对简单的分量或构造模块码来获得较高的编码增益。Turbo码认为是对级联码结构的一种改进,其中采用迭代算法对相关的码序列进行译码。Turbo码是通过将两个或更多分量码应用到同一数据序列的不同交织版本上构成的。对于任何传统单分量编码,译码器的最后一级生成的都是硬判决译码数据位。为了使象Turbo码这样的级联码方案工作得更好,译码算法不应被限制为只能在译码器间传递硬判决。为最好地利用每个译码器获得的信息,译码算法必须可以实现软判决交换,而不是采用硬判决。对于采用两个分量码的系统,译码的概念是指将来自一个译码器的软判决输入到另一个译码器的输入,并将此过程重复几次以获得更好的判决,如图1所示 。

3GPP Turbo 编码器

图2为3GPP编码器。

输入数据流输入到RSC1,它为每个输入比特生成一个对等比特(Parity Bit)。输入数据还经过交织后由RSC2处理生成第二个对等比特流。
3GPP标准定义,输入块的长度在40至5114 位之间。编码器生成一个速率为1/3的包括原始输入位和两个对等位的系统码。通过打孔方法可以获得1/2编码速度的编码。递归系统编码器的实现比较直接,然而交织器则不那么简单,要比标准的卷积或块交织器复杂。

一旦将输入数据块长度K 提供给编码器以后,编码器将计算交织矩阵行数R和列数 C,并创建相应的交织数据结构。R 和 C 是数据块长度K的函数。在输入符号被加载到交织矩阵以后,那么将根据一定的顺序进行行间交换和列间交换。交换模式是根据块长度K选择的(即依赖于K)。行和列交换完成后,通过逐列读出交织矩阵数据就可以得到最终的交织序列。在数据读出时需要进行删减操作,以保证在输出中只有正确的输入符号,请注意,交织阵列包含的数据位通常比K个原始输入符号要多 ,因为R C>K。然后,新的序列经过RSC2编码生成第二个对等位流。
实现交织器的一种方法是在存储器中存储完整的交换序列。即,一旦K 给定,即调用一个初始化例程(运行在处理器上的软件例程或利用FPGA中的功能单元)生成相应的交换序列,然后将这一信息存储在存储器中。然而,这一方法需要大量的存储器。利用Virtex -E FPGA 技术提供的 4096位每块的片上存储器,将需要[5114 13/4096]=17个存储器块。

在我们的方法中,采用一个预处理引擎生成一个序列值(存储),这一序列值被存储起来,交织器地址发生器将使用这些序列值。这一硬件单元采用几个小型数据结构(素数表)来计算所需要的序列。这一准备过程需要的时钟周期数与信息块的长度成比例。例如,对于K=40的块需要280时钟周期,而对于最大块长度K=5114,则需要 5290个时钟周期。该过程只需要在块长度变化时进行。地址发生器利用这些更为紧凑的数据结构来实时生成交织地址。

3GPP Turbo 译码器

译码器包括两个MAP(最大后验概率)译码器和几个交织器。Turbo算法的优良的性能源于可以在两个MAP译码器间共享可靠性信息(extrinsic data,外数据,或称先验数据)。

在我们的设计中,MAP译码器采用的是Bahl, Cocke, Jelinek 和 Rajiv (BCJR) 算法。BCJR算法计算每个符号的最大后验对数似然率,并且是一种真正的软判决算法。考虑到数据是以块的形式传输的,因此可以在时间维中前向或反向搜索一个符号序列。对于任一序列,其出现概率都是单独符号出现概率的乘积。由于问题是线性的,因此序列概述可以利用概率的对数和来代替。

为了与一般文献中的习惯一致,我们将译码迭代的前向和反向状态概率分别利用 和 来表示。通常,BCJR算法要求在接收到整个信息后才开始解码。对于实时应用,这一限制可能太严格了。例如,3GPP Turbo译码器将需要大量存储器存储一个5114符号信息块的完全状态结构(state trellis)。对于单片FPGA设计来说,这需要的存储资源太多了。与维特比(Vitebi)算法类似,我们可以先从全零向量 O和数据{yk}(k 从 n 到 n-L) 开始反向迭代。L次反向迭代可获得非常好的 n-L近似值。只要L选择合适,最终的状态标志(state metric)就是正确的。可以利用这一性质在信息结束前就开始进行有效的位译码。

L 被称为收敛长度。其典型值大约是译码器约束长度的数倍(通常为5至10倍),并随着信噪比的降低而增加。

通常,Turbo译码算法将计算所有的 (对整块信息),将这些数值存储起来,然后在反向迭代中与反向状态概率一起用来计算新的外信息(extrinsic information,或称先验信息)。我们的设计中采用了窗口化方法。

译码过程以一个前向迭代开始,计算包含L 个接收符号的块i的 值。同时,对未来(i+1)块进行一个反向迭代(标号 )。对块i+1的反向迭代结束时,就获得了开始对块i 进行反向迭代所需要的正确的 初始向量。 与此同时对数似然函数(Lall)也在进行。 每一 和 处理过程都需要8个max* 操作 - 每个针对状态结构(tellis)中的8个结点之一。最终的对数似然计算需要14个并行max* 运算符。为了提供可接受的译码速率,在设计中采用了38个max* 功能单元。

从 C描述到FPGA设计

FPGA Turbo 编码译码器设计是利用基于C的设计和验证方法进行的,如图3所示。

算法开发阶段采用具有定点C类型的Art Library 来对定点计算的位真(bit-true)效应进行准确建模。在这一阶段考察了几种可能算法的定点性能。一旦选定正确的量化算法,就可利用A|rtDesignerPro创建一个专用DSP架构。A|rtDesignerPro的一个最强大的功能之一是可以插入和利用专用的数据通道核心(称为专用单元,ASU)。利用这些ASU加速器核心可以使我们处理Turbo译码器算法内在的计算复杂性。

A|rtDesignerPro可自动完成寄存器分配、调度和控制器生成。在Turbo编码译码器设计中, A|rtDesignerr的自动循环合并可获得最佳的;任务调度,MAP译码步骤的内部循环都只有一个周期长。

A|rtDesignerPro生成的最终结果是可综合的寄存器级(RT-level) VHDL或Verilog 描述。基于C的工具流支持FPGA专用功能。例如,可利用BlockRAM自动构造RAM,而寄存器文件也可利用分布式存储器而不是触发器来实现 。

最后,逻辑综合和Xilinx实施工具套件将RTL HDL 转换为 FPGA 配置位流。

FPGA Turbo 编码译码器实现

A|rtDesigner创建的Turbo编码器和译码器核心硬件结构包含许多专用ASU加速器。其中最重要的一个加速器完成max* 操作。max* 运算符根据下式计算两个幂值a 和 b:

max* (a,b)=ln(expc(a)+expc(b))。

如 图4所示, max* 运算是通过选择(a,b)最大值,并应用一个存储在查找表(LUT)中的校正因子近似进行的。这一近似算法非常适合利用Xilinx FPGA 实现,其中LUT是其最终基本构造单元。

结果

Turbo译码算法硬件字长的选择极大地影响总体性能。利用C-to-FPGA设计流程,这一定点分析是完全在C环境中完成的。结果示于图 5。

上图显示出了我们的浮点Turbo译码器算法和对应的定点算法之间的性能差别。仿真是在5114块长度、5次译码迭代和AWGN信道模型情况下进行的。结果清晰明显出性能的损失是非常小的。

我们的Turbo译码器的定点性能做为译码器迭代次数的函数 ,对于1.5 dB SNR,位错率为10-6。

译码器功能的实现非常具有挑战性,我们同时针对Virtex-E和 Virtex-II 器件进行了适配。Virtex-II 器件实施是采用运行在1.85 speedfile数据库上的Xilinx 4.1i 实施工具集完成的。利用XC2V1000BG575-5 FPGA实现的最终设计,达到了66 MHz 的时钟性能,消耗了3,060个逻辑片 和 16个块RAM。对于从40至 5114符号长度的块,采用5次译码迭代循环的情况下,译码器达到了2 至6.5 百万符号每秒(Msym/s)的吞吐量。编码器占用了903个逻辑片、3个块RAM并支持83 MHz时钟频率。对于从40至5114位的块长度,速率可达到9 至20 Msym/s。

能用上就好了,用不上别怪我。对不起哈~祝福你~

3. 什么是译码

译码是编码的逆过程,同时去掉比特流在传播过程中混入的噪声。利用译码表把文字译成一组组数码或用译码表将代表某一项信息的一系列信号译成文字的过程称之为译码。
译码器是电子技术中的一种多输入多输出的组合逻辑电路,负责将二进制代码翻译为特定的对象(如逻辑电平等),功能与编码器相反。译码器一般分为通用译码器和数字显示译码器两大类。
数字电路中,译码器(如n线-2n线BCD译码器)可以担任多输入多输出逻辑门的角色,能将已编码的输入转换成已编码的输出,这里输入和输出的编码是不同的。
输入使能信号必须接在译码器上使其正常工作,否则输出将会是一个无效的码字。译码在多路复用、七段数码管和内存地址译码等应用中是必要的。

4. 基于verilog hdl的(2,1,7)卷积码译码器的设计(维特比硬判决译码),希望高手指点或者提供些有用的资料。

哥们 将你的编码器程序发给我分享一下 谢谢咯

5. 求一篇数学编程论文!急....

〔论文关键词〕Viterbi 算法 编程�
〔论文摘要〕虽然Texas Instrument推出的C6000系列DSP使对信号处理的能力显着提高,但对信息处理能力要求的不断提升使提对DSP程序的优化越来越成为DSP开发工作中非常重要的环节。本文讨论2Mbps视频数据流的Viterbi算法的移植与优化策略、技巧。�
��

一、概述�
Viterbi译码算法是由Viterbi于1967年提出的一种最大似然译码办法,译码器根据接收序列R按最大似然准则力图找出正确的原始码序列。随着大规模集成电路技术的发展,采用Viterbi算法的卷积编码技术已成为广泛应用的纠错方案。Viterbi译码过程可用状态表示。Sj,t和Sj N/2,t表示t时刻的两个状态。在t1时刻,这两个状态值根据路径为0或者1,转移到状态S2j,t1和S2j1,t1。每一种可能的状态转移都根据接收到的有噪声的序列R计算路径度量,然后选择出各个状态的最小度量路径(幸存路径)。Viterbi算法就是通过在状态中寻找最小量路径向前回溯L步,最后得到的即为译码输出。�
在卷积码(n,k,m)表示法中,参数k表示每次输入信息码位数,n表示编码的输出卷积码位数,m称为约束长度(一些书中采用k=m1为约束长度,也可称(2,1,2)码网格图,r=k/n称为信息率,即编码效率。本文运用的是(2,1,3)码,约速长度为2,状态数为2�2=-4。
TMS320C6000系列DSPs(数字信号处理器)是TI公司推出的一种并行处理的数字信号处理器,是基于TI的VLIW技术的。本文采用的是TMS320C6211。该处理器的工作频率经过倍频可达到150MHz,每个时钟周期最多可并行执行8条指令,从而可以实现1200MIPS定点运算能力。�

二、编程实现及优化�
根据C6000的软件编程流程,对Viterbi算法的编程及其优化可分为三个阶段来进行。这三个阶段分别为:开发C代码、优化C代码、编写线性汇编代码。在代码编写和优化过程中,这三个阶段不是都要经过的,只要在某一阶段已经满足了算法代码的功能和性能要求,就不必继续进行下面的阶段。�
1.开发C代码。这一阶段完全是根据任务要求来完成算法的代码编写工作。在C6000的集成开发环境CCS(Code Composer Studio)下进行代码的编译和功能验证,然后可用CCS的调试工具(如Profiler),利用在程序中设置断点的办法可找出程序中耗时最多、最影响整体性能的代码段。为改进代码性能,可进入下一阶段。�
在验证了算法代码实现功能并以设置断点的办法测试代码的性能,这段循环运行耗时(时钟周期)为1790。显然,性能不能达到要求,就要进入代码优化的第二阶段了。�
2.一般在代码调试中,最影响性能的是其中的循环代码段。而软件流水是一种用于安排循环内的指令运行方式,尽可能充分利用CPU的功能单元等资源,使循环的多次迭代能够并行执行的一种技术。在C6000的C/C编译器里,采用软件流水使编译出来的程序代码优化是一项核心技术。所以在进一步优化之前,需要调整并尽可能简化代码的结构并去除影响软件流水的因素使其能够被编译器充分流水,这对大幅提高整个代码的性能非常重要。�
所以,在考虑影响因素同时对Viterbi算法的循环代码进行如下调整;�
*运用内联函数(intrinsics)替代复杂的C语言程序。C6000编译器提供了许多intrinsics,可以快速优化C代码。Intrinsics是直接参与C6000汇编指令映射的内联函数。在这里运用了_extu(x,y,z),以简化其中hamm代码部分。

6. 什么是DSP

dsp
求助编辑网络名片
基于dsp的线路应用数字信号处理(Digital Signal Processing,简称DSP)是一门涉及许多学科而又广泛应用于许多领域的新兴学科。20世纪60年代以来,随着计算机和信息技术的飞速发展,数字信号处理技术应运而生并得到迅速的发展。数字信号处理是一种通过使用数学技巧执行转换或提取信息,来处理现实信号的方法,这些信号由数字序列表示。在过去的二十多年时间里,数字信号处理已经在通信等领域得到极为广泛的应用。德州仪器、Freescale等半导体厂商在这一领域拥有很强的实力。

目录

DSP微处理器DSP优点
DSP缺点
DSP典型应用框图
DSP的开发工具
DSP系统的设计过程
DSP算法及芯片分类
DSP技术的应用基于DSP的智能视频监控系统
基于DSP的语音实时变速系统
DSP发展轨迹
DSP未来发展
其他DSP尺寸稳定型聚酯纤维
Windows系统DSP
文件扩展名:DSP
磷酸氢二钠:DSP
dsp单身派
DSP舞团
DSP预警卫星系统
DSP 腹泻型贝类毒素
DSP 需求方平台
DSP 戴尔服务提供商DSP微处理器 DSP优点
DSP缺点
DSP典型应用框图
DSP的开发工具
DSP系统的设计过程
DSP算法及芯片分类
DSP技术的应用 基于DSP的智能视频监控系统
基于DSP的语音实时变速系统
DSP发展轨迹
DSP未来发展
其他
DSP尺寸稳定型聚酯纤维 Windows系统DSP 文件扩展名:DSP 磷酸氢二钠:DSP dsp单身派 DSP舞团 DSP预警卫星系统 DSP 腹泻型贝类毒素DSP 需求方平台DSP 戴尔服务提供商展开 编辑本段DSP微处理器
DSP(digital signal processor)是一种独特的微处理器,是以数字信号来处理大量信息的器件。其工作原理是接收模拟信号,转换为0或1的数字信号。再对数字信号进行修改、删除、强化,并在其他系统芯片中把数字数据解译回模拟数据或实际环境格式。它不仅具有可编程性,而且其实时运行速度可达每秒数以千万条复杂指令程序,远远超过通用微处理器,是数字化电子世界中日益重要的电脑芯片。它的强大数据处理能力和高运行速度,是最值得称道的两大特色。 DSP微处理器(芯片)一般具有如下主要特点: (1)在一个指令周期内可完成一次乘法和一次加法; (2)程序和数据空间分开,可以同时访问指令和数据; (3)片内具有快速RAM,通常可通过独立的数据总线在两块中同时访问; (4)具有低开销或无开销循环及跳转的硬件支持; (5)快速的中断处理和硬件I/O支持; (6)具有在单周期内操作的多个硬件地址产生器; (7)可以并行执行多个操作; (8)支持流水线操作,使取指、译码和执行等操作可以重叠执行。 当然,与通用微处理器相比,DSP微处理器(芯片)的其他通用功能相对较弱些。
DSP优点
对元件值的容限不敏感,受温度、环境等外部因素影响小; 容易实现集成;VLSI 可以分时复用,共享处理器; 方便调整处理器的系数实现自适应滤波; 可实现模拟处理不能实现的功能:线性相位、多抽样率处理、级联、易于存储等; 可用于频率非常低的信号。
DSP缺点
需要模数转换; 受采样频率的限制,处理频率范围有限; 数字系统由耗电的有源器件构成,没有无源设备可靠。 但是其优点远远超过缺点。
编辑本段DSP典型应用框图
如右图所示
[1]
编辑本段DSP的开发工具
数字信号处理器(DSP)作为一种可编程专用芯片,是数字信号处理理论实用化过程的重要技术工具,在语音处理、图像处理等技术领域得到了广泛的应用。但对于算法设计人员来讲,利用汇编语言或C 语言进行DSP 功能开发,具有周期长、效率低的缺点,不利于算法验证和产品的快速开发。 由MathWorks 公司和TI 公司联合开发的DSPMATLAB Link for CCS Development Tools(简称CCSLink)是MATLAB6.5 版本(Release13)中增加的一个全新的工具箱,它提供了MATLAB、CCS 和DSP 目标板的接口,利用此工具可以像操作MATLAB变量一样来操作DSP 器件的存储器和寄存器,使开发人员在MATLAB 环境下完成对DSP 的操作,从而极大地提高DSP 应用系统的开发进程。 MATLAB 具有强大的分析、计算和可视化功能,利用MATLAB 提供的数十个专业工具箱,可以方便、灵活地实现对自动控制、信号处理、通信系统等的算法分析和仿真,是算法设计人员和工程技术人员必不可少的软件工具。
编辑本段DSP系统的设计过程
DSP系统的设计还没有非常好的正规设计方法。 在设计DSP系统之前,首先必须根据应用系统的目标确定系统的性能指标、信号处理 的要求,通常可用数据流程图、数学运算序列、正式的符号或自然语言来描述。第二步是根据系统的要求进行高级语言的模拟。一般来说,为了实现系统的最终目标, 需要对输入的信号进行适当的处理,而处理方法的不同会导致不同的系统性能,要得到 最佳的系统性能,就必须在这一步确定最佳的处理方法,即数字信号处理的算法(Algo rithm),因此这一步也称算法模拟阶段。例如,语音压缩编码算法就是要在确定的压缩比条件下,获得最佳的合成语音。算法模拟所用的输入数据是实际信号经采集而获得的,通常以计算机文件的形式存储为数据文件。如语音压缩编码算法模拟时所用的语音信 号就是实际采集而获得并存储为计算机文件形式的语音数据文件。有些算法模拟时所用的输入数据并不一定要是实际采集的信号数据,只要能够验证算法的可行性,输入假设的数据也是可以的。 在完成第二步之后,接下来就可以设计实时DSP系统,实时DSP系统的设计包括硬件设计和软件设计两个方面。硬件设计首先要根据系统运算量的大小、对运算精度的要求、系统成本限制以及体积、功耗等要求选择合适的DSP芯片。然后设计DSP芯片的外围电路及其他电路。软件设计和编程主要根据系统要求和所选的DSP芯片编写相应的DSP汇编程序,若系统运算量不大且有高级语言编译器支持,也可用高级语言(如C语言)编程。由于现有的高级语言编译器的效率还比不上手工编写汇编语言的效率,因此在实际应用系统中常常采用高级语言和汇编语言的混合编程方法,即在算法运算量大的地方,用手工编写的方法编写汇编语言,而运算量不大的地方则采用高级语言。采用这种方法,既可缩短软件开发的周期,提高程序的可读性和可移植性,又能满足系统实时运算的要求。DSP硬件和软件设计完成后,就需要进行硬件和软件的调试。软件的调试一般借助于DSP开发工具,如软件模拟器、DSP开发系统或仿真器等。调试DSP算法时一般采用比较实时结果与模拟结果的方法,如果实时程序和模拟程序的输入相同,则两者的输出应该一致。应用系统的其他软件可以根据实际情况进行调试。硬件调试一般采用硬件仿真器进行调试,如果没有相应的硬件仿真器,且硬件系统不是十分复杂,也可以借助于一般的工具进行调试。 系统的软件和硬件分别调试完成后,就可以将软件脱离开发系统而直接在应用系统上运行。当然,DSP系统的开发,特别是软件开发是一个需要反复进行的过程,虽然通过算法模拟基本上可以知道实时系统的性能,但实际上模拟环境不可能做到与实时系统环境完全一致,而且将模拟算法移植到实时系统时必须考虑算法是否能够实时运行的问题。如果算法运算量太大不能在硬件上实时运行,则必须重新修改或简化算法。[2]
编辑本段DSP算法及芯片分类
DSP运算的基本类型是乘法和累加(MAC)运算,对于卷积、相关、滤波和FFT基本上都是这一类运算。这样的运算可以用通用机来完成,但受到其成本和结构的限制不可能有很高的实时处理能力。 DSP运算的特点是寻址操作。数据寻址范围大,结构复杂但很有规律。例如FFT运算,它的蝶形运算相关节点从相邻两点直至跨越N/2间隔的地址范围,每次变更都很有规律,级间按一定规律排列,虽然要运算log2N遍,但每级的地址都可以预测,也就是寻址操作很有规律而且可以预测。这就不同于一般的通用机,在通用机中对数据库的操作,具有很大的随机性,这种随机寻址方式不是信号处理器的强项。 无论是专用的DSP芯片或通用DSP芯片在结构考虑上都能适应DSP运算的这些特点。而专用芯片在结构上考虑的更加专业化,更为合理,因而有更高的运算速度。 DSP芯片按用途或构成分类可以分为下列几种类型: 为不同算法而专门设计的专用芯片:例如用于做卷积/相关并具有横向滤波器结构,INMOS公司的A100、A110;HARRIS公司的HPS43168;PLESSYGEC公司的PDSP16256等。用于做FFT,Austek公司的A41102,PLESSYGEC公司的PDSP16150等。这些都是为做FIR、IIR、FFT运算而设计的,因而运算速度高,但是具有有限的可编程能力,灵活性差。 为某种目的应用专门设计系统,即ASIC系统。它只涉及一种或一种以上自然类型数据的处理,例如音频、视频、语音的压缩和解压,调制/解调器等。其内部都是由基本DSP运算单元构建,包括FIR、IIR、FFT、DCT,以及卷积码的编/解码器及RS编/解码器等。其特点是计算复杂而且密集,数据量、运算量都很大。 积木式结构:它是由乘法器、存储器、控制电路等单元逻辑电路搭接而成,这种结构方式也称为硬连线逻辑电路。它是一种早期实现方法,具有成本低、速度高等特点,由于是硬连接因而没有可编程能力。目前主要用于接收机的前端某些高频操作中。 用FPGA(现场可编程陈列)实现DSP的各种功能。实质上这也是一种硬连接逻辑电路,但由于有现场可编程能力,允许根据需要迅速重新组合基础逻辑来满足使用要求,因而更加灵活,而且比通用DSP芯片具有更高的速度。一些大的公司如Xinlinx、Altera也正把FPGA产品扩展到DSP应用中去。 通用可编程DSP芯片:这是目前用得最多的数字信号处理应用器件 片上系统Soc(SystemonChip),这是数字化应用及微电子技术迅速发展的产物,是下一代基于DSP产品的主要发展方向之一。它把一种应用系统集成在一个芯片上。通常,为满足系统的性能要求和提高功率效率,会把DSP和MCU的多处理器处理平台集成在一起。图1是由TI公司推出的开放多媒体应用平台(OMAP),用来支持2.5G和3G应用而设计的处理器体系结构,它支持语音、音频、图像和视频信号处理应用的各种性能。其中关键器件有:低功耗的DSP芯片,用来做媒体处理;MCU用来支持应用操作系统及以控制为核心的应用处理;MTC是内存和流量控制器,确保处理器能高效访问外部存储区,避免产生瓶颈现象,提高整个平台的处理速度。[3]
编辑本段DSP技术的应用
语音处理:语音编码、语音合成、语音识别、语音增强、语音邮件、语音储存等。 图像/图形:二维和三维图形处理、图像压缩与传输、图像识别、动画、机器人视觉、多媒体、电子地图、图像增强等。 军事:保密通信、雷达处理、声呐处理、导航、全球定位、跳频电台、搜索和反搜索等。 仪器仪表:频谱分析、函数发生、数据采集、地震处理等。 自动控制:控制、深空作业、自动驾驶、机器人控制、磁盘控制等。 医疗:助听、超声设备、诊断工具、病人监护、心电图等。 家用电器:数字音响、数字电视、可视电话、音乐合成、音调控制、玩具与游戏等。 生物医学信号处理举例: CT机示例
CT:计算机X射线断层摄影装置。(其中发明头颅CT英国EMI公司的豪斯菲尔德获诺贝尔奖。) CAT:计算机X射线空间重建装置。出现全身扫描,心脏活动立体图形,脑肿瘤异物,人体躯干图像重建。 心电图分析。
基于DSP的智能视频监控系统
传统的视频监视系统是简单的非智能闭路电视(CCTV)系统,其缺点十分明显。这样的系统或者需要安保人员实时监视画面以捕捉关键事件,或者需要在事后对视频记录进行回放并进行人工分析。耗时耗力,成本高而效率低。近几年,DSP在智能视频监控系统方面的应用不断完善,正在逐渐取代传统的模拟非智能系统。 iSuppli公司2006年的一份分析报告曾指出,IP视频监控系统市场到2010年将增长近十倍。IP监控的创新技术之一是“智能摄像机”,它拥有强大的数字信号处理器,能探测威胁并触发自动响应。可见,DSP芯片是智能监控的核心。
基于DSP的语音实时变速系统
在外语多媒体教学中,要求对语速进行快慢控制,以适应不同程度学生的需求。然而,传统的语音变速产品往往在教师改变语速的同时,也改变了原说话者的语调,不能达到教学的真正目的。因此,语音变速系统应当具备调整语速的同时,还需要保证原说话者语调保持不变的特点。基于DSP(TMS320C5409)的语音实时变速系统能够任意调整语音语速,达到外语多媒体教学的需求。
编辑本段DSP发展轨迹
DSP产业在约40年的历程中经历了三个阶段:第一阶段,DSP意味着数字信号处理,并作为一个新的理论体系广为流行。随着这个时代的成熟,DSP进入了发展的第二阶段,在这个阶段,DSP代表数字信号处理器,这些DSP器件使我们生活的许多方面都发生了巨大的变化。接下来又催生了第三阶段,这是一个赋能(enablement)的时期,我们将看到DSP理论和DSP架构都被嵌入到SoC类产品中。” 第一阶段,DSP意味着数字信号处理。80年代开始了第二个阶段,DSP从概念走向了产品,TMS32010所实现的出色性能和特性备受业界关注。方进先生在一篇文章中提到,新兴的DSP业务同时也承担着巨大的风险,究竟向哪里拓展是生死攸关的问题。当设计师努力使DSP处理器每MIPS成本降到了适合于商用的低于10美元范围时,DSP在军事、工业和商业应用中不断获得成功。到1991年,TI推出价格可与16位微处理器不相上下的DSP芯片,首次实现批量单价低于5美元,但所能提供的性能却是其5至10倍。到90年代,多家公司跻身DSP领域与TI进行市场竞争。TI首家提供可定制 DSP——cDSP,cDSP 基于内核 DSP的设计可使DSP具有更高的系统集成度,大大加速了产品的上市时间。同时,TI瞄准DSP电子市场上成长速度最快的领域。到90年代中期,这种可编程的DSP器件已广泛应用于数据通信、海量存储、语音处理、汽车电子、消费类音频和视频产品等等,其中最为辉煌的成就是在数字蜂窝电话中的成功。这时,DSP业务也一跃成为TI最大的业务,这个阶段DSP每MIPS的价格已降到10美分到1美元的范围。21世纪DSP发展进入第三个阶段,市场竞争更加激烈,TI及时调整DSP发展战略全局规划,并以全面的产品规划和完善的解决方案,加之全新的开发理念,深化产业化进程。成就这一进展的前提就是DSP每MIPS价格目标已设定为几个美分或更低。
编辑本段DSP未来发展
1、数字信号处理器的内核结构进一步改善,多通道结构和单指令多重数据(SIMD)、特大指令字组(VLIM)将在新的高性能处理器中将占主导地位,如Analog Devices的 ADSP-2116x。 ADSP产品
2、DSP 和微处理器的融合: 微处理器是低成本的,主要执行智能定向控制任务的通用处理器能很好执行智能控制任务,但是数字信号处理功能很差。而DSP的功能正好与之相反。在许多应用中均需要同时具有智能控制和数字信号处理两种功能,如数字蜂窝电话就需要监测和声音处理功能。因此,把DSP和微处理器结合起来,用单一芯片的处理器实现这两种功能,将加速个人通信机、智能电话、无线网络产品的开发,同时简化设计,减小PCB体积,降低功耗和整个系统的成本。例如,有多个处理器的Motorola公司的DSP5665x,有协处理器功能的Massan公司FILU-200,把MCU功能扩展成DSP和MCU功能的TI公司的TMS320C27xx以及Hitachi公司的SH-DSP,都是DSP和MCU融合在一起的产品。互联网和多媒体的应用需要将进一步加速这一融合过程。 3、DSP 和高档CPU的融合: 大多数高档GPP如Pentium 和PowerPC都是SIMD指令组的超标量结构,速度很快。LSI Logic 公司的LSI401Z采用高档CPU的分支预示和动态缓冲技术,结构规范,利于编程,不用担心指令排队,使得性能大幅度提高。Intel公司涉足数字信号处理器领域将会加速这种融合。 4、DSP 和SOC的融合: SOC
SOC(System-On-Chip)是指把一个系统集成在一块芯片上。这个系统包括DSP 和系统接口软件等。比如Virata公司购买了LSI Logic公司的ZSP400处理器内核使用许可证,将其与系统软件如USB、10BASET、以太网、UART、GPIO、HDLC等一起集成在芯片上,应用在xDSL上,得到了很好的经济效益。因此,SOC芯片近几年销售很好,由1998年的1.6亿片猛增至1999年的3.45亿片。1999年,约39%的SOC产品应用于通讯系统。今后几年,SOC将以每年31%的平均速度增长,到2004年将达到13亿片。毋庸置疑,SOC将成为市场中越来越耀眼的明星。 5、DSP 和FPGA的融合: FPGA是现场编程门阵列器件。它和DSP集成在一块芯片上,可实现宽带信号处理,大大提高信号处理速度。据报道,Xilinx公司的Virtex-II FPGA对快速傅立叶变换(FFT)的处理可提高30倍以上。它的芯片中有自由的FPGA可供编程。Xilinx公司开发出一种称作Turbo卷积编译码器的高性能内核。设计者可以在FPGA中集成一个或多个Turbo内核,它支持多路大数据流,以满足第三代(3G)WCDMA无线基站和手机的需要,同时大大 WCDMA无线基站
节省开发时间,使功能的增加或性能的改善非常容易。因此在无线通信、多媒体等领域将有广泛应用。

7. 译码是干什么的

Viterbi译码
接收到的符号首先经过解调器判决,输出0、1
码,然后再送往译码器的形式,称为硬
判决译码。即编码信道的输出是0、1
的硬判决信息。
我们选择似然概率(
)
m
P
RC
的对数作为似然函数。容易看出,硬判决的最大似然译码
实际上是寻找与接收序列汉明距离最小的编码序列。对于网格图描述Viterbi
算法,整个
Viterbi
译码算法可以简单概括为“相加-比较-保留”,译码器运行是前向的、无反馈的,
实现过程并不复杂。
我们来分析Viterbi
算法的复杂度:
(n,
k,
N)
卷积码的状态数为2k
(N−1)
,对每一时刻要
做2k
(N−1)
次“加-比-存”操作,每一操作包括2k
次加法和2k
−1
次比较,同时要保留2k
(N−1)
条幸存路径。由此可见,Viterbi
算法的复杂度与信道质量无关,其计算量和存储量都随约束
长度N
和信息元分组k
呈指数增长。因此,在约束长度和信息元分组较大时并不适用。
为了充分利用信道信息,提高卷积码译码的可靠性,可以采用软判决Viterbi
译码算法。
此时解调器不进行判决而是直接输出模拟量,或是将解调器输出波形进行多电平量化,而不
是简单的
0、1
两电平量化,然后送往译码器。即编码信道的输出是没有经过判决的“软信
息”。
与硬判决算法相比,软判决译码算法的路径度量采用“软距离”而不是汉明距离。最常
采用的是欧几里德距离,也就是接收波形与可能的发送波形之间的几何距离。在采用软距离
的情况下,路径度量的值是模拟量,需要经过一些处理以便于相加和比较。因此,使计算复
杂度有所提高。除了路径度量以外,软判决算法与硬判决算法在结构和过程上完全相同。
一般而言,由于硬判决译码的判决过程损失了信道信息,软判决译码比硬判决译码性能
上要好约2
dB

不管采用软判决还是硬判决,由于Viterbi
算法是基于序列的译码,其译码错误往往具
有突发性

8. 卷积码编译码器的Matlab仿真实现

卷积程序我还是有的:
function [f,k]=conv_m(f1,k1,f2,k2)
%计算连续信号卷积积分f(t)=f1(t)*f2(t)
% f: 卷积积分f(t)对应的非零样值向量
% k:f(t)的对应时间向量
% f1: f1(t)非零样值向量
% f2: f2(t)的非零样值向量
% k1: f1(t)的对应时间向量
% k2: f2(t)的对应时间向量
% p:取样时间间隔
p=input('p=');
f=conv(f1,f2); %计算序列f1与f2的卷积和f
f=f*p;
k0=k1(1)+k2(1); %计算序列f非零样值的起点位置
k3=length(f1)+length(f2)-2; %计算卷积和f的非零样值的宽度
k=k0:p:k3*p; %确定卷积和f非零样值的时间向量
subplot(2,2,1)
plot(k1,f1) %在子图1绘f1(t)时域波形图
title('f1(t)')
xlabel('t')
ylabel('f1(t)')
subplot(2,2,2)
plot(k2,f2) %在子图2绘f2(t)时波形图
title('f2(t)')
xlabel('t')
ylabel('f2(t)')
subplot(2,2,3)
plot(k,f); %画卷积f(t)的时域波形
h=get(gca,'position');
h(3)=2.5*h(3);
set(gca,'position',h) %将第三个子图的横坐标范围扩为原来的2.5倍
title('f(t)=f1(t)*f2(t)')
xlabel('t')
ylabel('f(t)')

9. 什么是软判决

很多初入通信行业的开发人员,都会接触到过信道编解码,信道编解码中常常出现软判决与硬判决。
那么什么是软判决,什么是硬判决呢?软判决就是Demolator将解调后的模拟信号直接接入到Decoder来实现解码,硬判决就是对Demolator输出信号做N比特量化,如果分量高于门限就认为Demolator输出1,否则输出0。(根据调制方式,例如MPSK,M=2^N,则N比特量化)
但是通常在做软判决时,模拟信号难以在数字信号系统中处理,所有为实现软判决,不得不某些妥协,那就是用多比特量化来逼近模拟信号作为Decoder的输入。这样当然会带来量化噪声。我们还可以注意到如果软判决采用量化,那么硬判决就是软判决的特殊情况。
所以在数字通信系统,可以认为硬判决就是N比特量化,软判决就是多比特量化(>>N)。
另外,量化总会带来量化噪声,要越好逼近模拟信号,就要越多的比特位。
在均匀量化,信号在其空间均匀分布得到的情况下,多一个比特可以多得到6dB的增益。
具体推导可以参看老樊的《通信原理》,当然你也要自己做些推导,书

阅读全文

与卷积码编译器相关的资料

热点内容
编程怎么使用关键字检索字典 浏览:826
python中什么是编译器 浏览:83
2016程序员节 浏览:858
相册加密后在哪更改 浏览:146
ios开发入门pdf 浏览:983
东亚pdf 浏览:495
把服务器接到阿里云 浏览:414
p30方舟编译器多少钱 浏览:487
为什么一个app都有好几个进程 浏览:19
php做管理系统 浏览:188
服务器主板装什么驱动 浏览:482
文件夹加密用私钥加密 浏览:416
编程的知识是学不完的吗 浏览:150
程序员逆袭100篇 浏览:692
什么网站可以用美国服务器 浏览:789
路由器mc服务器地址 浏览:837
单片机ab侧 浏览:628
儿女英雄传pdf 浏览:909
电脑解压文件怎样输入密码 浏览:732
命令行刷recovery 浏览:585