用于对卫星、地面和电缆上传输的 数字电视数据进行解调和译码的装置 本发明涉及适用干接收通过卫星、地面和电缆进行传输的数字电视数据的多信道接收器的数字信号处理装置。
在技术上大家都知道使用了向前纠错技术,它包括了在有噪音的信道上,将已编码的数字数据从一个发送器传输到一个接收器(它包括用于基于维特比算法的卷积译码器的分支度量计算装置)(branch metric computer)的过程中进行卷积编码。维特比算法是对一条有噪音信道上传输的已被卷积编码的比特序列进行译码时使用地一种非常通用的算法。维特比算法的核心是一系列重复的“加法比较选择”操作,这种操作接收作为在来自解调器的每个被接收符号上进行计算的某个度量值,称为分支度量值(branch metvics)。对于卫星、电缆和地面上传输高数据速率的信号,这些计算也需要以非常高的速率进行。此外,在不同信道上以不同(但相关)的编码方式操作的调制解调器/译码器,在查找表内存或执行这些操作计算的实际硬件方面,对分支度量值的计算所需的开销变得过多。
在卫星传输信道的情况下,通常传输一些接收器的卷积译码器已知的某个特别的收缩四相移相键控编码(QPSK)。在地面或电缆传输信道的情况下,使用一些特定的接收器的卷积译码器已知的格码(例如正交调幅(QAM),相位幅度调制(PAM)或相移键控码(PSK))。例如,先有技术公开了将理论格码(trellis)作为一种实际的码用于高分清晰度电视(HDTV)的QAM传输。
过去,通常把包括用于基于维特比算法的卷积译码器的分支度量计算装置的接收器设计为只对单个预定类型的卷积编码进行操作。但是,在不久的将来多信道数字电视接收器可能进入批量生产市场,并且逐渐取代当前使用的模拟电视接收器。对电视接收器的直接广播卫星传输已经实现,对地面及电缆的传输也已实现。因此,就需要根据由多信道数字电视接收器接收的信道的编码类型(收缩或格码)和调制类型(PSK(包括QPSK和8-PSK),PAM或QAM)选择这种多信道数字电视接收器的卷积译码器。进而,批量生产的电视接收器在设计时应该考虑减少开销和复杂性。
发明者认识到一个单信号处理设备最好能例如,在数字电视信号处理系统中包含多个解调和译码功能。根据本发明的原理,公开的数字信号处理装置为不同类型的解调和译码功能提供可选的解调和译码器件。这样,一个单信号处理网络可以解调和译码不同信号格式的信号,例如卫星、地面和电缆电视信号。
在从多种类型的传输信道上接收已调制的视频信号的系统中,根据本发明的原理,该装置提供经解调和译码后的输出信号。已接收的视频信号代表了压缩的数字视频信息,例如电视图象信息,并且已被按照众多编码格式之一进行了编码。被接收的视频信号也已被按照众多调制格式之一进行了调制。
该装置包括了一个解调器,用于把接收到的,已被按照众多调制格式之一进行了调制的视频信号进行解调,以提供解调后的信号,该装置还包括一个译码器,用于把按照众多编码格式之一进行了编码的解调信号译码。
根据本发明的一个特性,解调器选择性地对按照脉幅调制(PAM),正交调幅(QAM)或相移键控(PSK)进行调制的视频信号进行解调。
根据本发明的另一个特性,可选择的译码器对按照格码(trellis)或收缩码格式进行编码的解调后的信号进行译码。
根据本发明的更进一步的一个特性,可选择的译码器按照众多编码率中选择的一种编码率对解调后的信号进行译码。
如图所示,本发明的译码器是一个卷积译码器,包括了一个分支度量计算装置(branch metric computer)和一个维特比译码器。在第一个实施例中,可对该分支度量计算装置(branch metriccomputer)进行选择性的编程,使其对任何QPSK收缩编码和多个PAM或QAM更多符号的格码(trellis)编码的I及Q信号输入进行操作。在第二个实施例中,还可对该分支度量计算装置(branchmetric computer)进行可选的编程,使其还可对8-PSK格码(trellis)I和Q信号输入进行操作。
按照图示,该分支度量计算装置(branch metric computer)有2x比特I和2x比特Q的信号输入,并且包括(1)一个RAM,它具有一个2x个存储单元的有效深度和一个足够存储4m比特宽度的入口--在每个存储单元至少有一个预载的I定义和一个Q定义的查找表--的宽度,(2)至少有4个加法器的一个组及(3)把组中的4个加法器输出的相应的和转给卷积译码器的维特比译码器的设备。
在第二实施例中,RAM的宽度为足够存储4m比特的,在每个存储单元有两个预载I定义和两个Q定义的宽度的入口;至少有4个加法器的组包括了8个加法器,以4个加法器为一个集合分成第一和第二两个集合;并且,用于把4个加法器组输出的相应的和转发给卷积译码器的维特比译码器的设备包括了4个比较器--通过每个比较器将第一和第二集合中对应的加法器的输出进行比较,将小的和转发给维特比译码器。
图1说明了一个多信道压缩数字电视接收器可能收到的,来自一个向前纠错压缩数字电视发送器的不同类型的传输信道;
图2是一个方框图,说明了卷积译码器、为译码器提供一个输入的解调器和图1的多信道压缩数字电视接收器的一个微控制器接口之间的关系;
图3是一个由图2中的卷积译码器的结构器件组成的方框图,说明了图2中的微控制接口与卷积译码器的结构器件之间的连接;
图3a是一个图3所示的卷积译码器的操作器件在被图3中的微控制接口编程为以收缩码译码模式进行操作时的功能图;
图3b是一个图3所示的卷积译码器的操作器件在被图3中的微控制器接口编程,为以格码(trellis)译码方式进行操作时的功能图;
图4一个图3所示的分支度量计算装置(branch metriccomputer)的结构器件的方框图;以及
图4a说明了图4所示的分支度量计算装置(branch metriccomputer)的结构器件的功能组织。
如图1所示,多信道压缩数字电视接收器100能够选择性地接收众多不同信道上传输的数字编码电视数据。这些众多信道包括卫星传输信道102,它传输来自向前纠错电视发射器104的数字编码电视数据;地面传输信道106,它传输来自向前纠错电视发射器108的数字编码电视数据;及电缆传输信道110,它传输来自向前纠错电视发射器112的数字编码电视数据。在技术上周知,发射器的向前纠错通常包括了对成功传送了的已编码的压缩数据电视数据的符号组的卷积编码。
在技术上还知道,通过卫星信道传输的卷积编码数据通常使用基于QSPK的收缩编码,而通过地面或电缆信道传输的基于PAM、PSK或QAM的卷积编码数据通常使用更多符号(即8,16,32,64,128和256)n/n+1的格码(trellis)。这样,要求多信道接收器100包括一种能够对基于QSPK的收缩码或基于PAM,PSK或QAM的更多字符n/n+1格码(trellis)中的任一特定码,根据从多信道中选择的用于接收的信道进行译码的卷积译码器。
更具体地,多信道接收器100包括了数字处理装置(见图2),它包括了接收器卷积译码器200和接收器解调器202,如技术中已知的接收器解调器202把每个成功接收的卷积编码符号组,做为信号输入数据提供给接收卷积译码器200。这个数据的每个成功接收的符号组在同相位(I),正交相位(Q)平面中定义一个点。多信道接收器100的数字处理装置还包括了一个微控制器,该微控制器包括了为接收器卷积译码器200提供一个控制输入的微控制器接口204。
在图3中示出了本发明所采用的接收器卷积译码器200的各结构器件之间的关系,以及外部微控制器接口204对这些器件的控制。如图3所示,接收器卷积译码器200的结构器件包括了同步电路300,填充数据插入器302,分支度量计算装置(branch metric computer)304,维特比译码器306,卷积译码器308,格码(trellis)反映象器310,延迟逻辑312,同步监视器314和选择设备316。微控制器接口204为上述结构器件提供一个特性列表,以把该卷积译码器的操作配置为用于收缩码的译码器,或用于格码(trellis)的译码器。图3a和3b分别说明了图3所示的卷积译码器的器件在配置为(1)用于收缩码操作的译码器或(2)用于格码(trellis)操作的译码器时的结构。
解调器202的输出数据做为同步电路300的I,Q输入数据。为了方便说明,假设每个I和Q数据由6个比特定义(即,在总共12个并行的输入线上提供输入数据)。这就允许通过12个比特的输入数据的6比特I和6比特Q分量来定义I,Q平面上的每个64×64=4096个不同的点。同步电路300还接收时钟和时钟使能(Clk Enb)输入。另外,同步电路300既接收来自微控制器接口204的控制数据,也为它提供数据,并且直接与同步监视器314连接。
每个器件302,304,306,308和310都有由微控制器接口204提供的控制数据。而且,虽然在图3中没有示出,但是实际上还需为这些器件提供时钟。响应数据输入时钟使能(DICE)和数据输出时钟使能(DOCE),适当同步的I和Q数据从同步电路300经过填充数据插入器302被转发至分支度量计算装置(branch metric computer)304。进而,再将该适当同步的I和Q数据经过延迟逻辑312转送至格码(trellis)反映象器310和同步监视器314。
填充数据插入器302主要用于收缩码,并且负责为该收缩码的指定的删除映象插入相应的填充数据。对于格码(trellis),填充数据插入器302仅仅是从它的输入经过至它的输出。由微控制器接口204为填充数据插入器302提供对编码和相应的删除映象的选择。填充数据插入器302通过一个内部时钟以基于使用的编码方案的速率为输出数据提供定时。由于输入和输出数据速率是不同的(对于收缩码),所以数据输入时钟使能(DICE)和数据输出时钟使能(DOCE)信号都是唯一的。DICE信号是来自接收器解调器202的时钟使能,而DOCE信号是在填充数据插入器302内部产生的(并且由时钟信号得来)。特别地,填充数据插入器302包括了一个FIFO存储机制,一个写时钟,用于将软判定抽样在相应位置进行写入,以及一个读时钟(它以比写时钟更高的速率操作,并且基于用于它的时钟速率的收缩码),用于为分支度量计算读取数据。在读出之前还要将填充抽样插入到恰当的位置。
分支度量计算装置(branch metric computer)306(在图4和4a中做详细介绍)对应于每个成功接收的符号组获得4个独立的6比特输出。这4个独立的5比特输出和来自分支度量计算装置(branch metric computer)306的DOCE信号做为输入提供给维特比译码器306。维特比译码器306,它是比率R=1/2,约束长度K=7的译码器,为收缩码和格码(trellis)执行维特比算法,在此,来自分支度量计算装置(branch metric computer)306的5比特度量输入用于更新状态和进行比特判定。维特比译码器306使用了加法比较选择(ACS)设备,路径度量存储设备,及用于格构的每一级的残存路径的存储器。另外,维特比译码器306也处理度量再归一化,以避免累加度量的增长和溢出。
维特比译码器306的一个1比特的输出做为卷积编码器308的一个输入。对于格码(trellis)和收缩码,卷积译码器308用于比率为1/2的嵌入码的两个传送的最好估计的再生。编码器308的输出还提供给同步监视器314,用于检验收缩码的同步状态。另外,维特比译码器306的1比特输出还做为输入提供给选择设备316。
来自卷积编码器308的2比特输出做为格构反映象器310的输入,格构反映象器310在图3b所示的格码(trellis)操作模式中负责符号判定。在格码(trellis)操作模式中,格构反映象器310使用来自卷积编码器308的2比特输出做为子集选择,和通过延迟逻辑312的延迟后的I和Q已接收的符号数据一起进行符号的判定。来自格构反映象器310的6个比特的输出做为输入提供给同步监视器314和选择设备316。
延迟逻辑312产生维特比译码器306/编码器308和相关电路所引入的延迟,并且将编码器输出的数据流与接收到的符号流同步。控制输入通过微控制器接口204从维特比译码器306的4个可能的路径存储器长度中选择一个,它还用于在延迟逻辑312中选择适当的延迟时间。
与同步电路300,格构反映象器310的输出,延迟逻辑312的输出及微控制器接口204相连接的同步监视器314,使用分支度量信息和来自微处理器接口204的一个观察间隔特性一起来决定同步状态。它也为同步电路300提供信息,用于可选的自动同步。在自动同步操作模式中,使用内部同步电路来实现同步功能。也可以选择由外部电路来实现同步。同步监视器314还用于为解调器提供一个信号用以分析相位模糊,这个信号仅在接收器解调器202中相位模糊时使用。而且,同步监视器314为接收器100的下行流器件提供一个解调同步信号。
接收到维特比译码器306的1个比特的输出和格构反映象器310的6介比特的输出做为输入的选择设备316,在卷积译码器为格码(trellis)操作模式时,将所有7个比特都传至它的输出;而在卷积译码器是收缩码操作模式时,则仅将来自维特比译码器306的1比特的输出传至它的输出。由选择设备316提供的,这个带有一个时钟和一个DOCE信号的输出数据用于接收器100的下行流器件。
分支度量计算装置(branch metric computer)304的结构包括了随机存取存储器(RAM)400,内存块0&1,I和Q累加器402及内存块0&1 I和Q比较器404。RAM400也可以是一个只读存储器。在初始化阶段,将来自微控制器接口204的做为控制输入而提供的可编程的、预先计算好的I和Q查找表预载到RAM400中。对应于来自填充数据插入器302(它反收缩,基于QPSK的收缩码符号)送到RAM400做为信号输入的I和Q信号,从这些查找表中选择出的I和Q入口被从RAM400中读出来,并且提供给内存块0&1 I和Q累加器402做为输入。内存块0&1 I和Q累加器402的输出提供给内存块0&1 I和Q比较器404做为输入,并且内存块0&1 I和Q比较器404的输出送给维特比306做为输入。
更具体地,如图4a所示功能,RAM400是被组成度量内存块0和度量内存块1。内存块0由包括第一I子集00和第一Q子集00的第一对子集组成;第二对子集由包括第二I子集01和第二Q子集01的第三对子集包括第三I子集11和第三Q子集11的;第四对子集包括第四I子集10和第四Q子集10的。内存块1也由四个类似的I和Q子集组成,这样其为RAM400提供了8对I和Q子集。8个I子集的每一个接收输入到RAM400的I信号,8个Q子集的每一个接收输入到RAM400的Q信号。通常,每个I和Q信号输入为一个x比特的信号(在图3的例子中假设为一个6比特信号)。8个I子集的每一个获得一个m比特的信号输出(示例中假设为一个4比特信号输出),且8个Q子集的每一个获得一个m比特的信号输出。
所有这8个来自RAM400的独立的I和m比特信号输出做为输入传送给内存块0&1I和Q累加器402中的各个累加器。特别地,来自内存块0的第一对子集的两个输出微为第一和第二输入提供给累加器402-1;来自内存块0的第二对子集的两个输出做为第一和第二输入提供给累加器402-2;来自内存块0的第三对子集的两个输出做为第一和第二输入提供给累加器402-3;来自内存块0的第四对子集的两个输出做为第一和第二输入提供给累加器402-4;来自内存块1的第一对子集的两个输出做为第一和第二输入提供给累加器402-5;来自内存块1的第二对子集的两个输出做为第一和第二输入提供给累加器402-6;来自内存块1的第三对子集的两个输出做为第一和第二输入提供给累加器402-7;来自内存块1的第四对子集的两个输出做为第一和第二输入提供给累加器402-8。这8个累加器的每一个都输出一个独立的(m+1)比特输出信号(即,在这里的假设情况下为5个比特的信号)。
所有这8个来自累加器的独立的(m+1)比特的输出信号做为输入送给内存块0 & 1 I和Q比较器404的各个比较器。具体地,来自累加器402-1和402-5的输出做为第一和第二输入提供给比较器4040-1;累加器402-2和402-6的输出做为第一和第二输出提供给比较器404-2;累加器402-3和402-7的输出做为第一和第二输入提供给比较器404-3;累加器402-4和402-8的输出做为第一和第二输入提供给比较器404-4,每个比较器将其两个m+1比特较低值的一个送到它的输出端。来自4个比较器的相应输出组成了分支度量计算装置(branch metric computer)304的输出(即,在假设的情况下为4个5比特的输出),做为维特比译码器306的输入。
在结构上讲,RAM400具有一个固定的比特存储尺寸,其有效深度为2x存储单元(即在x=6的假设示例中对应于存储空间1至64)。RAM400的输入到内存块0的每个I和Q信号及输入到内存块1的每个I和Q信号都有一个相关联的独立的查找表。RAM400的宽度要足够存储4个4m比特宽度的预先计算好的查找表(在假设示例中m=4),每个查找表由2x个入口组成,由可编程的I和Q查找表控制输入提供。这样,RAM400的比特存储尺寸为(2x)(4)(4m),或在假设示例中为4096比特。在实现基于QPSK的收缩码的情况下,一种简单的技术是传递最大的I和Q值并将该收缩度量值存储在查找表的适当位置。这就需要对实际的I和Q数据进行限幅,但能在译码器200的前端被处理。进而,可以对查找表编程使得允许一个希望的最大分支度量值而忽视某些不够重要的I和Q输入数据。
如上所述,分支度量计算装置(branch metric computer)304是基于维特比算法的卷积译码器200--该译码器200用于对有噪信道上用于卫星调制解调操作的基于QPSK的收缩码及用于在有噪信道上地面或电缆操作的更多符号(16,32,64,128及256的PAM或QAM或8-PSK)比率为n/m+1的格码(trellis)进行译码--的一个器件。由于信道中的噪音,在I,Q平面中收到的解调后的符号的定位点将不同于它在I,Q平面上传输时的定位点。每个在I,Q平面上成功地接收到的解调符号的定位点由输入到RAM400的I和Q信号用22x分辨率(在假设示例中为64×64=4096)定义。关于RAM400重要的一点是,它的所需内存不依赖于字母长度。
对应于一个当前接收的解调符号的内存块0中的各个I和Q查找表的4m比特(假设示例中为4比特)入口,定义了I、Q平台中,在当前接收的解调符号的定位点附近的4个指定的有效符号子集的每个子集的定位点到该当前接收的解调符号的定位点之间相应距离的各个I和Q分量。
在QPSK情况中,(在这种情形中每个子集定位点只定义一个符号定位点)及在更多符号的PAM或QAM情形中(在这种情形中,通过格构反映象器310根据提供的接收到的延迟的数据选择正确的点,每个子集定位点对应于维特比译码器所需的字母的1/4的符号的空间),一个I分量和一个Q分量足够准确地定义4个子集。这样,在这种情况中,只需要RAM400的内存块0。但是,在8-PSK情形中,独立地使用一个I分量和一个Q分量不足以准确地定义4个符号子集。这样,在8-PSK情形中,内存块0用于定义0°,90°,180°,270°的定位点,而内存块1(其操作特性类似于上述内存块0)用于定义45°,135°,225°,315°的定位点。使用来自RAM400的内存块0和内存块1的数据的比较器404-1至404-4用于通过下述方法解决上述不能准确定义的问题。
累加器402-1到402-8使用从RAM400中读出的有效群定位点的间距的I和Q分量来计算由8个子集的每一个所定义的称为曼哈顿间距(I+Q)的间距。这个曼哈顿间距指定并不是真的欧氏间距(I2+Q2),而是一个间距的度量方法,它认为I,Q平面中离接收的符号定位点近的点比离该点远的点重要。曼哈顿间距度量使用了I,Q二维空间中两点的I和Q坐标间的差距的和。这种间距衡量是只与间距相关的,但是的确根据被计算的距离的相对点的位置有所不同。但是,由于曼哈顿间距度量法的使用使得对I和Q坐标的操作相互独立,它使得对用于存储从任何接收到的定位点到有效群定位点的可能的间距的存储器的需求锐减。
比较器404-1至404-4的每一个都设计为让内存块0和内存块1提供的做为输入的两个测量值中的较小者通过。这样,在基于8-PSK编码的情形中,比较器404-1至404-4中的每一个将把来自内存块0或内存块1的测量输入的较小者做为输出。但是,在基于QSK,PAM或QAM的情形中,将对存储在RAM400的内存块1中的I和Q查找表编程,使其填写上度量的最大值,这样它们就会有效的无效,并且,这样比较器404-1到404-4的每一个都让从RAM400的内存块0中选择的度量值通过。在一个设计为不接收基于8-PSK码的多信道接收器中,可以省去所有这些比较器和RAM400的内存块1(这样将RAM400所需的存储容量减半)。
虽然这里公开的卷积译码器主要用于接收收缩码或格构码的压缩的数字电视数据的多信道接收器,但是并不表明适用被所述卷积译码器解码的编码数据类型仅限于电视数据,而是包括了适于被所述卷积译码器解码的任何其它类型的编码数据。
所公开的译码装置不仅如上所述适用于卫星、地面和电缆电视数据的接收器,而且适用于其它应用,包括电话,直达微波和光纤传输。