CN112073157B - 一种蓝牙接收机的低功耗viterbi译码实现方法 - Google Patents
一种蓝牙接收机的低功耗viterbi译码实现方法 Download PDFInfo
- Publication number
- CN112073157B CN112073157B CN202011255688.XA CN202011255688A CN112073157B CN 112073157 B CN112073157 B CN 112073157B CN 202011255688 A CN202011255688 A CN 202011255688A CN 112073157 B CN112073157 B CN 112073157B
- Authority
- CN
- China
- Prior art keywords
- length
- fec module
- decoding
- backtracking
- block
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
- 238000000034 method Methods 0.000 title claims abstract description 38
- 239000011159 matrix material Substances 0.000 claims description 17
- YBJHBAHKTGYVGT-ZKWXMUAHSA-N (+)-Biotin Chemical compound N1C(=O)N[C@@H]2[C@H](CCCCC(=O)O)SC[C@@H]21 YBJHBAHKTGYVGT-ZKWXMUAHSA-N 0.000 description 2
- 108010003272 Hyaluronate lyase Proteins 0.000 description 2
- 230000005540 biological transmission Effects 0.000 description 2
- FEPMHVLSLDOMQC-UHFFFAOYSA-N virginiamycin-S1 Natural products CC1OC(=O)C(C=2C=CC=CC=2)NC(=O)C2CC(=O)CCN2C(=O)C(CC=2C=CC=CC=2)N(C)C(=O)C2CCCN2C(=O)C(CC)NC(=O)C1NC(=O)C1=NC=CC=C1O FEPMHVLSLDOMQC-UHFFFAOYSA-N 0.000 description 2
- 230000009286 beneficial effect Effects 0.000 description 1
- 230000006870 function Effects 0.000 description 1
- 230000009191 jumping Effects 0.000 description 1
- 230000000717 retained effect Effects 0.000 description 1
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L1/00—Arrangements for detecting or preventing errors in the information received
- H04L1/004—Arrangements for detecting or preventing errors in the information received by using forward error control
- H04L1/0045—Arrangements at the receiver end
- H04L1/0052—Realisations of complexity reduction techniques, e.g. pipelining or use of look-up tables
- H04L1/0053—Realisations of complexity reduction techniques, e.g. pipelining or use of look-up tables specially adapted for power saving
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M13/00—Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
- H03M13/03—Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words
- H03M13/23—Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words using convolutional codes, e.g. unit memory codes
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M13/00—Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
- H03M13/37—Decoding methods or techniques, not specific to the particular type of coding provided for in groups H03M13/03 - H03M13/35
- H03M13/39—Sequence estimation, i.e. using statistical methods for the reconstruction of the original codes
- H03M13/41—Sequence estimation, i.e. using statistical methods for the reconstruction of the original codes using the Viterbi algorithm or Viterbi processors
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M13/00—Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
- H03M13/37—Decoding methods or techniques, not specific to the particular type of coding provided for in groups H03M13/03 - H03M13/35
- H03M13/39—Sequence estimation, i.e. using statistical methods for the reconstruction of the original codes
- H03M13/41—Sequence estimation, i.e. using statistical methods for the reconstruction of the original codes using the Viterbi algorithm or Viterbi processors
- H03M13/4161—Sequence estimation, i.e. using statistical methods for the reconstruction of the original codes using the Viterbi algorithm or Viterbi processors implementing path management
- H03M13/4169—Sequence estimation, i.e. using statistical methods for the reconstruction of the original codes using the Viterbi algorithm or Viterbi processors implementing path management using traceback
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04B—TRANSMISSION
- H04B5/00—Near-field transmission systems, e.g. inductive or capacitive transmission systems
- H04B5/40—Near-field transmission systems, e.g. inductive or capacitive transmission systems characterised by components specially adapted for near-field transmission
- H04B5/48—Transceivers
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L1/00—Arrangements for detecting or preventing errors in the information received
- H04L1/004—Arrangements for detecting or preventing errors in the information received by using forward error control
- H04L1/0045—Arrangements at the receiver end
- H04L1/0054—Maximum-likelihood or sequential decoding, e.g. Viterbi, Fano, ZJ algorithms
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L1/00—Arrangements for detecting or preventing errors in the information received
- H04L1/004—Arrangements for detecting or preventing errors in the information received by using forward error control
- H04L1/0056—Systems characterized by the type of code used
- H04L1/0059—Convolutional codes
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04W—WIRELESS COMMUNICATION NETWORKS
- H04W4/00—Services specially adapted for wireless communication networks; Facilities therefor
- H04W4/80—Services using short range communication, e.g. near-field communication [NFC], radio-frequency identification [RFID] or low energy communication
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M13/00—Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
- H03M13/03—Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words
- H03M13/05—Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words using block codes, i.e. a predetermined number of check bits joined to a predetermined number of information bits
- H03M13/09—Error detection only, e.g. using cyclic redundancy check [CRC] codes or single parity bit
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04B—TRANSMISSION
- H04B2201/00—Indexing scheme relating to details of transmission systems not covered by a single group of H04B3/00 - H04B13/00
- H04B2201/69—Orthogonal indexing scheme relating to spread spectrum techniques in general
- H04B2201/713—Frequency hopping
- H04B2201/71346—Bluetooth
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Physics & Mathematics (AREA)
- Probability & Statistics with Applications (AREA)
- Theoretical Computer Science (AREA)
- Artificial Intelligence (AREA)
- Error Detection And Correction (AREA)
Abstract
本发明公开了一种蓝牙接收机的低功耗viterbi译码实现方法,对第一FEC模块及第二FEC模块分模块译码,先对第一FEC模块进行译码,获得编码指示符和访问地址,再根据编码指示符对第二FEC模块译码,第二FEC模块的译码也包括两个阶段,第一阶段用于获取分组负载长度,第二阶段用于获取译码比特流。本发明针对蓝牙5.0的分组格式的特点和卷积码的特点提出,能够充分利用寄存资源,降低功耗,减少时延。
Description
技术领域
本发明涉及低功耗蓝牙设计技术领域,具体地是涉及一种蓝牙接收机的低功耗viterbi译码实现方法。
背景技术
蓝牙5.0中为适应远距离传输的需要,加入了(2,1,4)卷积码对分组信息进行卷积编码,以便接收端对传输过程中出现错误的比特进行纠正。viterbi译码方法是一种常用的译码方法,但在蓝牙接收机中,现有的viterbi译码从始至终均采用一种回溯方法,这对于蓝牙接收机接收信号的特殊格式而言,资源无法得到充分利用,功耗也比较大。
发明内容
发明目的:为了解决现有技术中蓝牙接收机中viterbi译码功耗大译码效率低的问题,本发明提供一种蓝牙接收机的低功耗viterbi译码实现方法。
技术方案:一种蓝牙接收机的低功耗viterbi译码实现方法,接收信号包括第一FEC模块及第二FEC模块,该方法包括以下步骤:
设定第一长度阈值和第二长度阈值,第一长度阈值为第二FEC模块中分组头长度与校验数据长度之和;
将第一FEC模块的幸存路径存储至SMU单元,对第一FEC模块译码回溯,采用FIFO方式依次输出编码指示符和访问地址;
根据编码指示符确定第二FEC模块是否需要解扩展,若需要解扩展则对第二FEC模块解扩展,若不需要则等待第二FEC模块译码;将访问地址与实际地址进行匹配,若匹配成功,等待第二FEC模块译码,若不成功,蓝牙接收机复位;
将第二FEC模块的幸存路径存储至SMU单元,当SMU单元存储的数据长度达到第一长度阈值时,对SMU单元存储数据译码回溯,采用FIFO方式输出,并自校验数据长度时刻开始取出分组头中的分组负载长度;
根据分组负载长度判断第二FEC模块总的比特数是否超过第二长度阈值,若不超过第二长度阈值,对第二FEC模块一次性回溯完成译码;若超过第二长度阈值,对第二FEC模块先进行逐块分次译码回溯,每次输出固定比特数译码流,直至译码剩余比特数不超过第二长度阈值时,对剩余比特一次性回溯完成译码。
进一步地,所述SMU单元包括B个存储块,B≥3,所述存储块用于存储幸存路径。
进一步地,对第二FEC模块逐块译码回溯的具体方法为:
所述SMU单元包括第一存储块、第二存储块及第三存储块,第二FEC模块在逐块译码回溯时,先将幸存路径存储在第一存储块、第二存储块中,第一存储块、第二存储块填满后进行回溯,回溯时新的幸存路径写入第三存储块中;回溯通过第二存储块进入到第一存储块时,在第一存储块中回溯获得的所有比特信息作为译码输出;第三存储块填满后,第二存储块及第三存储块用于回溯,第一存储块用于写入新的幸存路径,以此循环。
进一步地,设SMU单元中每个存储块的存储长度均为N,SMU单元的总存储长度为B*N,第二长度阈值为SMU单元的总存储长度。
进一步地,对第二FEC模块进行逐块译码回溯时,采用LIFO方式输出译码结果。
进一步地,在对第一FEC模块译码回溯时,依次输出编码指示符和访问地址的具体方法为:
第一FEC模块依次包括访问地址、编码指示符及寄存器归零指示符,设第一FEC模块的编码输入比特长度为a,编码指示符长度为a1,寄存器归零指示符长度为a2;
将第一FEC模块的幸存路径存储至SMU单元,当SMU单元存储长度达到a时,对第一FEC模块进行回溯译码,采用FIFO方式输出,自回溯时刻a2开始输出编码指示符,自回溯时刻a1+a2开始输出访问地址。
进一步地,在对第二FEC模块译码回溯时,取出分组头中的分组负载长度的具体方法为:
第二FEC模块包括分组数据单元、校验数据及寄存器归零指示符,设第二FEC模块的分组数据单元中的分组头长度为b1,校验数据的长度为b2,寄存器归零指示符长度为b3;
将第二FEC模块的幸存路径存储至SMU单元,当SMU单元存储长度达到b1+b2时,对第二FEC模块进行回溯译码,采用FIFO方式输出,自回溯时刻b2开始取出分组头中的分组负载长度域,确定分组负载的长度。
进一步地,分组负载的长度判断第二FEC模块总的比特数是否超过第二长度阈值,若不超过,对第二FEC模块一次性回溯完成译码,自回溯时刻b3开始输出译码。
进一步地,所述SMU单元中,每个存储块为一个8*N的存储矩阵,SMU单元的总存储长度为B*N比特,宽度为8比特。
有益效果:相比较现有技术,本发明提供一种蓝牙接收机的低功耗viterbi译码实现方法,针对蓝牙5.0的分组格式的特点和(2,1,4)卷积码的特点,提出了一种逐块回溯方法,能够充分利用寄存资源,降低功耗,减少时延。
附图说明
图1为蓝牙5.0 coded PHY模式下的分组格式;
图2为本实施例蓝牙接收机的低功耗viterbi译码实现方法的流程图。
具体实施方式
下面结合附图和具体实施例对本发明做进一步解释说明。
Viterbi译码器通常由BMG(分支度量值产生)单元、ACS(加并选择)单元、PMU(路径度量值存储)单元、SMU(幸存路径存储)单元、TBU(回溯)单元和Control(状态控制)模块组成。各单元的具体功能如下:
1)BMG单元负责计算由当前时刻某个状态跳转到下一个时刻某个状态的分支度量值;
2)ACS 单元接收来自 BMG 计算的分支度量值,并与前一个时刻 PMU 单元存储的路径累加值相加,得出两个输入路径的度量值,经过比较,选出来的幸存路径及幸存路径度量值分别存储于 SMU单元和PMU 路径中。
3)当达到某个要求的时刻时,从幸存路径中选出路径度量值最小的路径。TBU单元对该路径进行回溯,产生译码输出。
4)Control模块对以上各模块的动作进行控制。
如图1所示为蓝牙5.0 code PHY模式下的分组格式。每个蓝牙数据包括Preamble(前导码)、FEC block 1(第一FEC模块)和 FEC block 2(第二FEC模块)这三个模块。其中前导码不参与编码和译码。第一FEC模块包括三个字段:访问地址(Access Address)、编码指示符(CI)和寄存器归零指示符(TERM1)。其中第一FEC模块将使用定义在S=8 的编码方案。第二FEC模块包含三个字段:分组数据单元(PDU),校验数据(CRC)和寄存器归零指示符(TERM2)。第二FEC模块使用 S=2 或 S=8 编码方案。当S=8时,信息比特首先要用0011(对应比特0)或1100(对应比特1)进行扩展,再进行卷积编码;当S=2时,直接进行卷积编码。CI决定了FEC模块2的编码方案。当CI=00时,模块2的扩展因子S等于8;当CI=01时,模块2的扩展因子S等于2。TERM1和TERM2所对应的信息比特都是000,用于编码时对状态寄存器进行归零。PDU 单元包含16比特的分组头和若干字节(0~255)的分组负载。其中分组头指示了负载部分的字节数。
蓝牙5.0 code PHY模式下的分组格式中的第一FEC模块的编码输入比特长度为37,其中编码指示符有两位(00或01),寄存器归零指示符为000;第二FEC模块的分组数据单元中的分组头长度为16比特,分组负载的长度为b4,校验数据的长度为24比特,寄存器归零指示符为000。
根据此数据包格式,本实施例提出了分模块译码,分别对第一FEC模块和第二FEC模块进行译码。从降低功耗的角度出发,采用逐块回溯的方式译码。将SMU单元分为B个存储块,用来存储幸存路径,B≥3,每个存储块为一个8*N的存储矩阵。SMU单元的总存储长度为B*N比特,宽度是8比特,8比特正好对应(2,1,4)卷积码的8个状态。本实施例以B=3、N=32为例,实际中可根据具体任务需求灵活确定B和N的值。如图2所示,蓝牙接收机的低功耗viterbi译码实现方法包括如下步骤:
设定第一长度阈值和第二长度阈值,第一长度阈值为第二FEC模块中分组头长度与校验数据长度之和,即40;第二长度阈值取3*32=96。
1、对第一FEC模块译码。
将第一FEC模块的幸存路径存储至SMU单元,第一FEC模块的编码输入比特的长度为37,且采用了TERM1使编码器状态归零。因此译码回溯长度为37,从000状态开始回溯,且从回溯时刻0开始获得的比特信息都将用于输出。TBU单元的输出可以采用FIFO方式(一次回溯最先获得的译码比特最先输出)或LIFO方式(一次回溯最后获得的译码比特最先输出)。但对于第一FEC模块,需要采用FIFO方式。这是因为第二FEC模块的译码需要CI信息的支持。如果CI为00,则第二FEC模块需要先解扩展再进行卷积译码,否则直接进行卷积译码。如果回溯输出采用LIFO的方式,要等待访问地址输出后才能获得CI信息,第二FEC模块等待的时间太长,不利于译码器的匀速输入。第一FEC模块译码完成后输出译码结束信号,对译码器进行复位,指示可以对第二FEC模块进行译码了。此处的回溯模式定义为回溯模式0,此模式中从000状态开始回溯,自回溯时刻0开始获得的比特信息都将用于输出,输出采用FIFO方式。自回溯时刻3开始输出两比特的编码指示符,继续自回溯时刻5输出访问地址。
编码指示符输出之后即可根据编码指示符确定第二FEC模块是否需要解扩展,若CI=00,需要解扩展则对第二FEC模块解扩展,若CI=01不需要解扩展则等待第二FEC模块译码;
访问地址输出后,将访问地址与实际地址进行匹配,若匹配成功,等待第二FEC模块译码,若不成功,蓝牙接收机复位;
2、对第二FEC模块译码。该步骤又分为两部分,第二FEC模块的第一阶段译码和第二阶段译码。第一阶段译码用于获得分组负载的长度,负载的实际长度为0~255字节,该值由PDU单元中分组头中的Length域指示出来。这是因为分组负载长度需要先确定,否则若分组负载长度很短,译码器将跑到超出蓝牙数据的错误时刻去。当负载长度为零时,第二FEC模块的编码输入比特长度为40比特(16比特的分组头加上24比特的CRC,不包括TERM2),因此设定第一长度阈值为40,当SMU单元的存储长度达到40时,进行第二FEC模块的第一阶段译码。第二阶段译码是在确定好长度的情况下对第二FEC模块进行译码回溯,输出正常的译码比特流。具体包括:
1)第一阶段译码:将第二FEC模块的幸存路径存储至SMU单元,当SMU单元存储的数据长度达到40时,对SMU单元存储数据译码回溯,此处的回溯模式定义为回溯模式1,此模式中从路径度量值最小的路径开始回溯,自回溯时刻0开始获得的比特信息都将用于输出,采用FIFO方式输出,并自回溯时刻24开始至回溯时刻31取出分组负载长度,指导后续的译码操作。在回溯时刻31发出指示信号,表明第二FEC模块译码的第一阶段译码执行完毕。需要指出的是,为尽量保证译码的正确性及译码的连贯性,SMU单元存储的40比特幸存路径信息仍将用于后续译码。
2)第二阶段译码:根据分组负载长度判断第二FEC模块总的比特数是否超过SMU单元的总存储长度96,根据是否超过96选择不同的译码回溯方法。若总长度不超过96,对第二FEC模块一次性回溯完成译码;若总长度超过第二长度阈值,对第二FEC模块先进行逐块分次译码回溯,直至译码剩余比特数不超过96,此时对剩余比特一次性完成译码回溯输出。在正常的逐块译码回溯操作中,每次输出的译码比特数都是固定的B个比特,且输出采用LIFO方式,定义该种回溯方式为回溯模式2。当第二FEC模块总的比特数或者经多次逐块译码回溯后剩余的比特数不超过96时,执行的是一次性译码回溯操作。在这种操作中,自000状态开始回溯,从回溯时刻3开始获得的比特信息都将用于输出,输出采用LIFO方式,定义此操作中的回溯方式为回溯模式3。在通常的viterbi译码中,回溯操作通常有两种方式,即逐块回溯和逐比特回溯。本方法中采用的是逐块回溯。以下对逐块译码回溯和逐比特译码回溯进行解释说明:
蓝牙5.0在coded phy模式下输出编码流的速率为1Mbps,综合考虑物理层处理时延、功耗等指标,可以将译码器的工作时钟定为16MHz。译码器的TBU单元所占功耗比较大,回溯方式通常有逐比特回溯和逐块回溯。逐比特回溯时每次回溯输出一个译码比特,逐块回溯时每次回溯产生若干个输出比特。前者将消耗更多的功率,但译码时延相对小、SMU单元所需寄存资源相对小。由于本方法中译码器工作时钟是译码输入码流速率的16倍,且(2,1,4)卷积码的状态数仅有8个,因此相对于译码时延和寄存资源,功耗处于更重要的设计指标位置。为此,本方法采用逐块回溯的方式。
采用逐块回溯时,SMU单元将分为B个存储块,每个存储块是一个8*N的存储矩阵。例如,分为3个8x32的存储矩阵C(i)(i=0,1,2),
表示矩阵C(i)的第m行第n列的元素,该元素存储了进入到状态m的幸存路径所对应的编码输入比特信息,该路径是对进入到当前时刻的状态m的所有路径进行ACS运算后留存下来的。根据此比特信息可推知转移到当前时刻该状态的前一时刻的状态。这3个存储矩阵将组成一个大的循环存储块。例如,在译码过程中矩阵C(0)和C(1)已填满,则开始进行回溯。回溯的同时,新的幸存路径信息写入矩阵C(2)中。由于32等于(2,1,4)卷积码的约束长度的8倍,因此此时所有幸存路径在矩阵C(0)中的路径信息通常合并到了一条路径上。因此回溯操作中从所有幸存路径中选择路径度量值最小的一条路径进行回溯,回溯通过矩阵C(1)进入到矩阵C(0)时,在矩阵C(0)中回溯获得的所有比特信息可以作为译码输出。回溯直接获得的译码比特信息相对于发送端的信息比特流来说实际上是后入先出(LIFO)的,如果需要先入先出(FIFO),则需要首先存储到RAM中,然后再按照先入先出的规则进行输出。完成1次正常回溯,大约需要64个时钟周期,相当于4个码元周期。因此回溯完成后,矩阵C(2)还没有填满,但矩阵C(0)的信息已经使用完毕,可以存入新的幸存路径信息了。当矩阵C(2)填满后,矩阵C(1)和C(2)可以用于回溯操作,而矩阵C(0)可以写入新的幸存路径信息了。后续操作依此循环往复。直至最后一次回溯时,译码剩余比特数不超过96,此时译码剩余部分所有的比特都当成译码正确的比特输出,所以最后一次回溯是直接回溯译码输出所有比特。
由上可知,蓝牙接收机的低功耗viterbi译码实现方法中共涉及4种回溯模式,由此可见回溯部分的设计是非常关键的,对功耗、时延、复杂度等都有重要影响。为此,本发明结合蓝牙5.0在速率、分组格式、编码特点等方面的具体条件,提出适用的译码方法能够充分利用寄存资源,降低功耗,减少时延。
Claims (9)
1.一种蓝牙接收机的低功耗viterbi译码实现方法,接收信号包括第一FEC模块及第二FEC模块,其特征在于,该方法包括以下步骤:
设定第一长度阈值和第二长度阈值,第一长度阈值为第二FEC模块中分组头长度与校验数据长度之和;
将第一FEC模块的幸存路径存储至SMU单元,对第一FEC模块译码回溯,采用FIFO方式依次输出编码指示符和访问地址;
根据编码指示符确定第二FEC模块是否需要解扩展,若需要解扩展则对第二FEC模块解扩展,若不需要则等待第二FEC模块译码;将访问地址与实际地址进行匹配,若匹配成功,等待第二FEC模块译码,若不成功,蓝牙接收机复位;
将第二FEC模块的幸存路径存储至SMU单元,当SMU单元存储的数据长度达到第一长度阈值时,对SMU单元存储数据译码回溯,采用FIFO方式输出,并自校验数据长度时刻开始取出分组头中的分组负载长度;
根据分组负载长度判断第二FEC模块总的比特数是否超过第二长度阈值,若不超过第二长度阈值,对第二FEC模块一次性回溯完成译码;若超过第二长度阈值,对第二FEC模块先进行逐块分次译码回溯,每次输出固定比特数译码流,直至译码剩余比特数不超过第二长度阈值时,对剩余比特一次性回溯完成译码。
2.根据权利要求1所述的蓝牙接收机的低功耗viterbi译码实现方法,其特征在于,所述SMU单元包括B个存储块,B≥3,所述存储块用于存储幸存路径。
3.根据权利要求2所述的蓝牙接收机的低功耗viterbi译码实现方法,其特征在于,对第二FEC模块逐块分次译码回溯的具体方法为:
所述SMU单元包括第一存储块、第二存储块及第三存储块,第二FEC模块在逐块分次译码回溯时,先将幸存路径存储在第一存储块、第二存储块中,第一存储块、第二存储块填满后进行回溯,回溯时新的幸存路径写入第三存储块中;回溯通过第二存储块进入到第一存储块时,在第一存储块中回溯获得的所有比特信息作为译码输出;第三存储块填满后,第二存储块及第三存储块用于回溯,第一存储块用于写入新的幸存路径,以此循环。
4.根据权利要求2或3所述的蓝牙接收机的低功耗viterbi译码实现方法,其特征在于,设SMU单元中每个存储块的存储长度均为N,SMU单元的总存储长度为B*N,第二长度阈值为SMU单元的总存储长度。
5.根据权利要求1至3任一所述的蓝牙接收机的低功耗viterbi译码实现方法,其特征在于,对第二FEC模块进行逐块分次译码回溯时,采用LIFO方式输出译码结果。
6.根据权利要求1至3任一所述的蓝牙接收机的低功耗viterbi译码实现方法,其特征在于,在对第一FEC模块译码回溯时,依次输出编码指示符和访问地址的具体方法为:
第一FEC模块依次包括访问地址、编码指示符及寄存器归零指示符,设第一FEC模块的编码输入比特长度为a,编码指示符长度为a1,寄存器归零指示符长度为a2;
将第一FEC模块的幸存路径存储至SMU单元,当SMU单元存储长度达到a时,对第一FEC模块进行译码回溯,采用FIFO方式输出,自回溯时刻a2开始输出编码指示符,自回溯时刻a1+a2开始输出访问地址。
7.根据权利要求1至3任一所述的蓝牙接收机的低功耗viterbi译码实现方法,其特征在于,在对第二FEC模块译码回溯时,取出分组头中的分组负载长度的具体方法为:
第二FEC模块包括分组数据单元、校验数据及寄存器归零指示符,设第二FEC模块的分组数据单元中的分组头长度为b1,校验数据的长度为b2,寄存器归零指示符长度为b3;
将第二FEC模块的幸存路径存储至SMU单元,当SMU单元存储长度达到b1+b2时,对第二FEC模块进行译码回溯,采用FIFO方式输出,自回溯时刻b2开始取出分组头中的分组负载长度域,确定分组负载的长度。
8.根据权利要求7所述的蓝牙接收机的低功耗viterbi译码实现方法,其特征在于,分组负载的长度判断第二FEC模块总的比特数是否超过第二长度阈值,若不超过,对第二FEC模块一次性回溯完成译码,自回溯时刻b3开始输出译码。
9.根据权利要求2或3所述的蓝牙接收机的低功耗viterbi译码实现方法,其特征在于,所述SMU单元中,每个存储块为一个8*N的存储矩阵,SMU单元的总存储长度为B*N比特,宽度为8比特。
Priority Applications (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011255688.XA CN112073157B (zh) | 2020-11-11 | 2020-11-11 | 一种蓝牙接收机的低功耗viterbi译码实现方法 |
EP21793848.9A EP4027550B1 (en) | 2020-11-11 | 2021-03-22 | Decoding implementation method for bluetooth receiver |
PCT/CN2021/082158 WO2022099967A1 (zh) | 2020-11-11 | 2021-03-22 | 蓝牙接收机的译码实现方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011255688.XA CN112073157B (zh) | 2020-11-11 | 2020-11-11 | 一种蓝牙接收机的低功耗viterbi译码实现方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN112073157A CN112073157A (zh) | 2020-12-11 |
CN112073157B true CN112073157B (zh) | 2021-01-19 |
Family
ID=73655815
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202011255688.XA Active CN112073157B (zh) | 2020-11-11 | 2020-11-11 | 一种蓝牙接收机的低功耗viterbi译码实现方法 |
Country Status (3)
Country | Link |
---|---|
EP (1) | EP4027550B1 (zh) |
CN (1) | CN112073157B (zh) |
WO (1) | WO2022099967A1 (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112073157B (zh) * | 2020-11-11 | 2021-01-19 | 南京沁恒微电子股份有限公司 | 一种蓝牙接收机的低功耗viterbi译码实现方法 |
Family Cites Families (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN100505557C (zh) * | 2004-03-16 | 2009-06-24 | 北京中电华大电子设计有限责任公司 | 基于Viterbi译码的多路并行循环块回溯方法 |
CN101272151A (zh) * | 2008-04-25 | 2008-09-24 | 王世亮 | 一种参数可控制的多功能维特比译码的电路 |
CN102064839B (zh) * | 2009-11-11 | 2013-11-20 | 中国科学院微电子研究所 | 一种高速低功耗多码率的Viterbi译码器 |
US8548102B2 (en) * | 2010-05-12 | 2013-10-01 | Qualcomm Incorporated | Tail-biting convolutional decoding |
WO2016057431A1 (en) * | 2014-10-06 | 2016-04-14 | Mediatek Inc. | Rate indication and link adaptation for variable data rates in long range wireless networks |
CN105610448A (zh) * | 2015-12-29 | 2016-05-25 | 北京中科晶上科技有限公司 | 基于多核DSP零尾卷积Viterbi译码的方法及系统 |
CN110858825B (zh) * | 2018-08-22 | 2021-08-17 | 畅想科技有限公司 | 用于调整gfsk调制信号的采样定时的系统和方法 |
CN111385779A (zh) * | 2018-12-29 | 2020-07-07 | 华为终端有限公司 | 一种数据处理方法、设备及存储介质 |
CN111162873B (zh) * | 2019-12-25 | 2021-06-22 | 复旦大学 | 一种低功耗蓝牙的低复杂度优化解码算法 |
CN110995286B (zh) * | 2019-12-28 | 2023-05-02 | 复旦大学 | 一种s=2编码方式的低功耗蓝牙维特比联合解调解码方法 |
CN112073157B (zh) * | 2020-11-11 | 2021-01-19 | 南京沁恒微电子股份有限公司 | 一种蓝牙接收机的低功耗viterbi译码实现方法 |
-
2020
- 2020-11-11 CN CN202011255688.XA patent/CN112073157B/zh active Active
-
2021
- 2021-03-22 WO PCT/CN2021/082158 patent/WO2022099967A1/zh unknown
- 2021-03-22 EP EP21793848.9A patent/EP4027550B1/en active Active
Also Published As
Publication number | Publication date |
---|---|
EP4027550A4 (en) | 2022-10-19 |
CN112073157A (zh) | 2020-12-11 |
EP4027550A1 (en) | 2022-07-13 |
EP4027550B1 (en) | 2024-06-26 |
WO2022099967A1 (zh) | 2022-05-19 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US5878098A (en) | Method and apparatus for rate determination in a communication system | |
EP0671817A1 (en) | Soft symbol decoding for use in an MLSE-equaliser or convolutional decoder | |
CN101997553B (zh) | 一种卷积码译码方法及装置 | |
CN101431388B (zh) | 译码编码数据帧的方法及其译码器 | |
JP4806673B2 (ja) | 復号装置及び復号方法 | |
US6452985B1 (en) | Viterbi decoding apparatus and Viterbi decoding method | |
CN112073157B (zh) | 一种蓝牙接收机的低功耗viterbi译码实现方法 | |
KR100853139B1 (ko) | 전송 포맷 검출 장치 및 방법 | |
US7404139B2 (en) | Decoder with M-AT-A-Time Traceback | |
US5887007A (en) | Viterbi decoding method and viterbi decoding circuit | |
US8055986B2 (en) | Viterbi decoder and method thereof | |
CN114448562A (zh) | 维特比解码器中的并行回溯 | |
CN101662293A (zh) | 一种译码方法和设备 | |
KR101212856B1 (ko) | 통신 시스템에서 데이터를 복호하는 방법 및 장치 | |
CN105356893A (zh) | 一种尾码可配置的Viterbi解码方法及解码器 | |
JPH05183448A (ja) | 誤り訂正符復号化装置 | |
JP2002344330A (ja) | ターボ復号装置およびターボ復号における復号の繰返し回数の制御方法 | |
US11290208B1 (en) | Decoding implementation method of Bluetooth receiver | |
WO2012019465A1 (zh) | 信道译码方法和咬尾卷积译码器 | |
CN118631265A (zh) | 一种新颖高效的全并行维特比译码设计方法及系统 | |
US8413033B2 (en) | Device and method for calculating backward state metrics of a trellis | |
WO2004019498A1 (en) | Convolutional decoder and method for decoding demodulated values | |
CN102045070B (zh) | 译码方法及其装置 | |
CN114531161A (zh) | 一种多模列表维特比实现方法及译码器 | |
US8503585B2 (en) | Decoding method and associated apparatus |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |