CN109818713B - 副载波调制的米勒码解码方法、装置和设备及存储介质 - Google Patents

副载波调制的米勒码解码方法、装置和设备及存储介质 Download PDF

Info

Publication number
CN109818713B
CN109818713B CN201910066916.XA CN201910066916A CN109818713B CN 109818713 B CN109818713 B CN 109818713B CN 201910066916 A CN201910066916 A CN 201910066916A CN 109818713 B CN109818713 B CN 109818713B
Authority
CN
China
Prior art keywords
sampling points
period
decoding
bit
sampling
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
Application number
CN201910066916.XA
Other languages
English (en)
Other versions
CN109818713A (zh
Inventor
王通生
戴立君
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Zhejiang Dahua Technology Co Ltd
Original Assignee
Zhejiang Dahua Technology Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Zhejiang Dahua Technology Co Ltd filed Critical Zhejiang Dahua Technology Co Ltd
Priority to CN201910066916.XA priority Critical patent/CN109818713B/zh
Publication of CN109818713A publication Critical patent/CN109818713A/zh
Application granted granted Critical
Publication of CN109818713B publication Critical patent/CN109818713B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Abstract

本发明公开了一种副载波调制的米勒码解码方法、装置和设备及存储介质,属于射频识别技术领域,用于解决信号中存在扰动时信号解码成功率低的技术问题。该方法包括:记录接收到的信号中当前比特bit的起始时刻,与当前bit的起始时刻之后出现的第一个长脉冲之间的采样点数,其中,在连续检测到大于或者等于一个采样周期的相同电平时,触发所述长脉冲;将所述采样点数与每个周期采样点数的倍数进行比较,以确定所述采样点数满足的解码条件;基于确定的解码条件,得到与所述解码条件对应的解码结果。

Description

副载波调制的米勒码解码方法、装置和设备及存储介质
技术领域
本发明涉及射频识别技术领域,特别涉及一种副载波调制的米勒码解码方法、装置和设备及存储介质。
背景技术
射频识别(Radio Frequency Identification,RFID)的原理是通过被无源标签反射回来的信号来实现对其信息的获取与识别。其中,目前超高频的射频识别系统所采用的编码方式一般为双相间空号编码(Bi-Phase Space Coding,FM0)或者米勒(Miller)码,本发明实施例将着重于米勒码的相关描述。
对于米勒码,目前常用的解码方法一般通过在解码装置中设置窄脉冲计数模块和宽脉冲计数模块,分别用于记录窄脉冲和宽脉冲的数量,再根据相邻两个宽脉冲之间的窄脉冲个数来判定当前数据值,但是该方法在信号中存在扰动时,对于宽窄脉冲的数量计数会有明显的误差,使得解码成功率降低。
发明内容
本发明实施例提供一种副载波调制的米勒码解码方法、装置和设备及存储介质,用于解决信号中存在扰动时信号解码成功率低的技术问题。
第一方面,提供一种副载波调制的米勒码解码方法,包括:
记录接收到的信号中当前比特bit的起始时刻,与当前bit的起始时刻之后出现的第一个长脉冲之间的采样点数,其中,在连续检测到大于或者等于一个采样周期的相同电平时,触发所述长脉冲;
将所述采样点数与每个周期采样点数的倍数进行比较,以确定所述采样点数满足的解码条件;
基于确定的解码条件,得到与所述解码条件对应的解码结果。
本发明实施例中,通过采样点数来进行数据值的判断,由于采样点的数量受信号的扰动的干扰较小,从而减小了信号的扰动对解码成功率的影响,相较目前的解码方法,解码成功率更高。
可选的,基于确定的解码条件,得到与所述解码条件对应的解码结果,包括:
若所述采样点数小于每个周期采样点数的预设倍数N,则确定解码得到一个为1的bit,其中,N为正整数;或者,
若所述采样点数大于或者等于每个周期采样点数的N倍,且小于每个周期采样点数的(N+M/2)倍,则确定解码得到一个为0的bit,其中,M为一个bit占据的采样周期;或者,
若所述采样点数大于或者等于每个周期采样点数的(N+M/2)倍,则确定解码得到顺序为0和1的两个bit。
可选的,所述方法还包括:
若所述采样点数小于每个周期采样点数的预设倍数N,则将当前bit之后出现的第一个跳变脉冲的时刻确定为下一个bit的起始时刻,其中,在信号出现上升沿和/或下降沿时,触发所述跳变脉冲;或者,
若所述采样点数大于或者等于每个周期采样点数的N倍,且小于每个周期采样点数的(N+M/2)倍,则将回退半个周期的时刻确定为下一个bit的起始时刻,并将当前记录的采样点数设置为半个周期的采样点数;或者,
若所述采样点数大于或者等于每个周期采样点数的(N+M/2)倍,则将当前bit之后出现的第一个跳变脉冲的时刻确定为下一个bit的起始时刻。
本发明实施例中,在解码每个bit时,都会对下一个bit的起始采样点进行纠正,以保证解码得到的数据与原始信号同步,进而从另一层面上提升了解码成功率。
可选的,所述将当前bit之后出现的第一个跳变时刻确定为下一个bit的起始时刻,包括:
将当前记录的采样点数清零,并在第(每个周期采样点数*((M-1)/2-0.25))个采样点之后的第一个跳变脉冲的时刻重新开始记录。
可选的,所述方法还包括:
若M为2,则所述预设倍数N为2;或者,
若M为4,则所述预设倍数N为3;或者,
若M为8,则所述预设倍数N为5。
可选的,在记录接收到的信号中当前比特bit的起始时刻,与当前bit的起始时刻之后出现的第一个长脉冲之间的采样点数之前,所述方法还包括:
记录所述信号的前导码的上升沿次数,以及信号处理装置的主时钟的上升沿次数;
根据所述信号的前导码的上升沿次数、所述主时钟的上升沿次数以及所述主时钟的主频,确定所述信号的采样周期。
第二方面,提供一种副载波调制的米勒码解码装置,包括:
记录单元,用于记录接收到的信号中当前比特bit的起始时刻,与当前bit的起始时刻之后出现的第一个长脉冲之间的采样点数,其中,在连续检测到大于或者等于一个采样周期的相同电平时,触发所述长脉冲;
确定单元,用于将所述采样点数与每个周期采样点数的倍数进行比较,以确定所述采样点数满足的解码条件;以及,基于确定的解码条件,得到与所述解码条件对应的解码结果。
可选的,所述确定单元,具体用于:
若所述采样点数小于每个周期采样点数的预设倍数N,则确定解码得到一个为1的bit,其中,N为正整数;或者,
若所述采样点数大于或者等于每个周期采样点数的N倍,且小于每个周期采样点数的(N+M/2)倍,则确定解码得到一个为0的bit,其中,M为一个bit占据的采样周期;或者,
若所述采样点数大于或者等于每个周期采样点数的(N+M/2)倍,则确定解码得到顺序为0和1的两个bit。
可选的,所述确定单元还用于:
若所述采样点数小于每个周期采样点数的预设倍数N,则将当前bit之后出现的第一个跳变脉冲的时刻确定为下一个bit的起始时刻,其中,在信号出现上升沿和/或下降沿时,触发所述跳变脉冲;或者,
若所述采样点数大于或者等于每个周期采样点数的N倍,且小于每个周期采样点数的(N+M/2)倍,则将回退半个周期的时刻确定为下一个bit的起始时刻,并将当前记录的采样点数设置为半个周期的采样点数;或者,
若所述采样点数大于或者等于每个周期采样点数的(N+M/2)倍,则将当前bit之后出现的第一个跳变脉冲的时刻确定为下一个bit的起始时刻。
可选的,所述确定单元将当前bit之后出现的第一个跳变时刻确定为下一个bit的起始时刻,具体包括:
将当前记录的采样点数清零,并在第(每个周期采样点数*((M-1)/2-0.25))个采样点之后的第一个跳变脉冲的时刻重新开始记录。
可选的,
若M为2,则所述预设倍数N为2;或者,
若M为4,则所述预设倍数N为3;或者,
若M为8,则所述预设倍数N为5。
可选的,
所述记录单元,还用于记录所述信号的前导码的上升沿次数,以及信号处理装置的主时钟的上升沿次数;
所述确定单元,还用于根据所述信号的前导码的上升沿次数、所述主时钟的上升沿次数以及所述主时钟的主频,确定所述信号的采样周期。
第三方面,提供一种副载波调制的米勒码解码设备,包括:
至少一个处理器;以及
与所述至少一个处理器通信连接的存储器;其中,
所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被所述至少一个处理器执行,以使所述至少一个处理器能够执行如第一方面所述的方法。
第四方面,提供一种计算机存储介质,
所述计算机存储介质存储有计算机指令,当所述计算机指令在计算机上运行时,使得计算机执行如第一方面所述的方法。
附图说明
图1为本发明实施例提供的米勒码编码的基本函数示意图;
图2为本发明实施例提供的米勒码编码的状态示意图;
图3为本发明实施例提供的信号处理流程示意图;
图4a为本发明实施例提供的前导码的示意图一;
图4b为本发明实施例提供的前导码的示意图二;
图5为本发明实施例提供的M为2时的频率提取示意图;
图6为本发明实施例提供的副载波调制的米勒码解码方法的流程示意图;
图7为本发明实施例提供的长脉冲和跳变脉冲的记录的示意图;
图8为本发明实施例提供的米勒码序列示意图;
图9为本发明实施例提供的三种解码条件的示意图;
图10为本发明实施例提供的副载波调制的米勒码解码装置的一种结构示意图;
图11为本发明实施例提供的副载波调制的米勒码解码设备的一种结构示意图。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述。
下面介绍本发明实施例的技术背景。
目前,超高频的射频识别系统所采用的编码方式一般为双相间空号编码(Bi-Phase Space Coding,FM0)或者米勒(Miller)码,本发明实施例将着重于米勒码的相关描述。请参见图1和图2,分别为米勒码编码的基本函数和米勒编码状态图。其中,图1中所示的s1(t)表示符号为0的函数,s4(t)表示s1(t)取反,s2(t)表示符号为1的函数,s3(t)表示s2(t)取反,T为符号0或者符号1的周期。图2中,S1表示函数s1(t)对应的编码状态,S2表示函数s2(t)对应的编码状态,S3表示函数s3(t)对应的编码状态,S4表示函数s4(t)对应的编码状态。
对于米勒码,目前常用的解码方法一般通过在解码装置中设置窄脉冲计数模块和宽脉冲计数模块,分别用于记录窄脉冲和宽脉冲的数量,再根据相邻两个宽脉冲之间的窄脉冲个数来判定当前数据值,但是该方法在信号中存在扰动时,对于宽窄脉冲的数量计数会有明显的误差,使得解码成功率降低。
鉴于此,本发明实施例提供一种副载波调制的米勒码解码方法,在该方法中,通过采样点数来进行数据值的判断,由于采样点的数量受信号的扰动的干扰较小,从而减小了信号的扰动对解码成功率的影响,相较目前的解码方法,解码成功率更高。此外,本发明实施例中,在解码每个bit时,都会对下一个bit的起始采样点进行纠正,以保证解码得到的数据与原始信号同步,进而从另一层面上提升了解码成功率。
下面结合附图介绍本发明实施例提供的技术方案。
本发明实施例提供一种副载波调制的米勒码解码方法,后续简称解码方法,该方法可以通过本发明实施例的副载波调制的米勒码解码装置,后续简称解码装置来执行,该装置例如可以通过RFID系统中的扫描读写器来实现,其中,该扫描读写器例如可以是手持式进行扫描的,或者还可以是固定设置在门禁系统或者车库门口的RFID感应器等,或者还可以是其他可能的读写器,本发明实施例对此不做限制。
本发明实施例中,主要针对的过程是在对信号进行解码的过程,但是在实际应用过程中,对信号进行解码只是其中一个较为重要的环节,在对信号进行解码之前或者之后,还会进行较多的处理工作,因此,为了信号处理的流程更加清晰,下面将结合信号处理的整个流程对本发明实施例的解码方法进行描述。请参见图3,为对信号处理的流程图。
步骤301:进行A/D采样。
在解码装置接收到米勒编码模拟信号之后,由于接收到的信号为模拟信号,解码装置需要通过模数转换器(Analog to Digital Converter,ADC)进行高速A/D采样,以获取到米勒编码数字信号。
步骤302:通过滤波器滤除噪声信号。
再通过滤波器对高速采样得到的米勒编码数字信号进行数字滤波,以滤除信号中的高频信号,有效的去除噪声信号。其中,滤波器例如可以采用有限冲激响应(FiniteImpulse Response,FIR)滤波器,当然,也可以采用其他可能的滤波器,本发明实施例对此不做限制。
步骤303:判断滤波后的信号是否为有效信号。
因为接收到的波形实质上是噪声和信号的混合,通常情况下,经过上述滤波之后,有效信号强度要明显大于噪声强度,因此可以将滤波之后的米勒编码数字信号输入至阈值判断模块,通过判断滤波之后的米勒编码数字信号的强度是否大于预设阈值,以判断滤波之后的米勒编码数字信号是否为有效信号,若是滤波之后的米勒编码数字信号大于预设阈值,就认为是有效信号,继续后面的处理,反之则结束处理。
步骤304:若步骤303的确定结果为是,则对滤波后的信号进行过零检测。
本发明实施例中,在滤波之后的米勒编码数字信号被确定为有效信号时,可以对滤波之后的米勒编码数字信号进行过零检测,也就是对滤波之后的米勒编码数字信号进行高低电平的区分,其中,在信号强度值高于特定值则认为是高电平“1”,信号强度值低于特定值则认为是低电平“0”,这个特定值的取值可以根据上述滤波器的参数来进行设置。
步骤305:通过前导码提取信号频率。
在RFID系统中,标签向RFID读写器返回信号称为反向链路,由于反向链接速率(Backscatter Link Frequency,BLF)有多种可选,并且存在一定的误差范围,因此还需要确定出反向链接速率,这样,才能更准确的进行数据的解码。下表为GB29768规定的8种可选的反向链接速率,误差范围为正负20%。
其中,反向链接速率因子用于指示反向链路速率,与反向链路速率一一对应,例如上表中1/5对应着64,3/7对应着137.14等等,温度范围是指RFID系统所适用的温度范围。
Figure BDA0001955992930000081
本发明实施例中,在对有效信号进行过零处理之后,就可以进行频率提取,也就是提取反向链路速率。具体的,在接收到的信号中,一般都会包括前导码,则可以利用前导码来进行频率提取。对于米勒编码而言,前导码可以为如图4a和图4b所示的前导码中的其中一种,具体为哪种类型,是由启动查询命令中TRext数据域决定的。如图4a所示,在TRext为0b时,前导码的长度为4M个采样周期(Tpri)的长度,M为一个bit占据的采样周期,一般而言,M的可选值可以为2、4和8;如图4b所示,在TRext为1b时,前导码的长度为16M个采样周期的长度。
由图4a和图4b可见,采用米勒编码方式时,前导码的长度至少都会为4M个周期,也就是说,M为2时,前导码的长度最短也会有4*2=8个周期,这8个周期则可以用于进行频率提取。下面以一具体的例子对频率提取进行描述。
其中,假设解码装置的现场可编程门阵列(Field-Programmable Gate Array,FPGA)的主频为100MHz,在接收到信号后进行16倍采样,反向链路信号为320KHz,选择4个信号周期的前导码进行频率提取,那么如图5所示,通过变量Signal_up记录上述信号的上升沿次数,变量clk_up_cnts记录FPGA主时钟的上升沿次数,在Signal_up为1时,设置clk_up_cnts为0,直至Signal_up为5时,记录下当前时刻的clk_up_cnts的次数,其中,Signal_up为5,即已经过了4个信号的周期。那么就可以根据Signal_up、clk_up_cnts以及FPGA的主频推算出信号的频率。例如Signal_up为5,clk_up_cnts为1250时,则信号的频率为100*4/1250=0.32MHz,即信号的频率为320KHz。
本发明实施例中,进行频率提取是为了获取准确的采样时钟,沿用上述的例子,为了达到16倍采样,则需要对主时钟进行((1250/4)/16)倍分频,最终可得到采样时钟sample_clk为16,其中,采样时钟是指每个采样周期的采样点数,也就是说,sample_clk为16时,每个采样周期的采样点数为16。
步骤306:确定信号的帧头是否与预设帧头匹配。
本发明实施例中,在传输真正的信号数据之前,通常还会传输一段帧头,帧头后紧接着信号数据,用于表示数据即将开始传输,因此,帧头通常都会采用固定的符号,例如对于米勒编码而言,帧头一般为“00111101”。其中,帧头匹配的过程实质上就是将帧头解码出来,与预设的帧头进行对比,若是相同,则确定帧头匹配成功,否则失败。
具体的,帧头与后续的信号数据通常采用相同的编码规则,因此帧头的解码方式是与信号数据的解码方式是相同的。下面将对解码方法进行描述,请参见图6,为解码方法的流程示意图。
步骤601:记录接收到的信号中当前比特bit的起始时刻,与当前bit的起始时刻之后出现的第一个长脉冲之间的采样点数。
本发明实施例中,如图7所示,可以通过主时钟产生两个脉冲,即长脉冲(long_pluse)和信号跳变脉冲(signal_pluse),long_pluse检测到一个周期持续的相同电平,即持续的高电平或者低电平时触发一次长脉冲,如图7所示,在每个长脉冲之后long_pluse触发一次,signal_pluse在检测到信号由高到低或者由低到高跳变一次则触发一次脉冲,如图7所示,信号每跳变一次,触发一次signal_pluse。此外,定义两个变量,signal_points和bit_points,其中,变量signal_points用于记录两个signal_pluse之间的采样点数,bit_points用于记录从一个bit的起始时刻,与当前bit的起始时刻之后出现的第一个长脉冲之间的采样点数,如图7中,每个bit分割线用于表示一个bit的开始时刻和下一个bit的结束时刻,当然,图7中所示的bit分割线是理论情况下,通过逻辑推理得到的,在实际应用过程中,可能并不满足图7所示的分割线,例如下一bit的起始时刻可能会往后推移几个采样点等等。
步骤602:将所述采样点数与每个周期采样点数的倍数进行比较,以确定所述采样点数满足的解码条件。
本发明实施例中,不管M为哪种值时,信号的波形图与信号数据之间都存在着一定的规律。请参见图8,图8为不同值时不同数据所对应的米勒码序列,例如对于M=2时,当前bit的解码值为0时,当前bit的最后半个周期必定为一个长电平的半个周期,当前bit的解码值为1时,当前bit的中部必定包括一个周期的长电平,而出现解码值为01时,0所在的bit必定未出现长电平,而1所在的bit中部必定包括一个周期的长电平;对于M=4或者8时,实质上相当于在M=2的基础上向两侧扩充了2或者6个周期的跳变波形,而中部所满足的规律是与M=2是相同的,因此,可以根据所满足的规律来解码出当前bit的值为多少。
下面具体以M=2进行详细的描述。
如图9所示,在解码值为1时,由于长电平位于当前bit的中心,那么从该bit的起始时刻到长电平的结束时刻之间不超过两个周期,那么该bit的起始时刻到长电平的结束时刻之间的采样点数不会大于每个采样周期采样点数的两倍;而解码值为0时,当前bit的最后半个周期占据了一个长电平的一半,那么从该bit的起始时刻到长电平的结束时刻之间必定超过两个周期,但不超过三个周期,那么该bit的起始时刻到长电平的结束时刻之间的采样点数必定大于每个采样周期采样点数的两倍,但小于每个采样周期采样点数的三倍;类似的,可以得到当解码值为01时,从0所在的bit的起始时刻到长电平的结束时刻之间超过3个周期,但不超过4个周期,那么从0所在的bit的起始时刻到长电平的结束时刻之间的采样点数则必定大于每个采样周期采样点数的三倍,但小于每个采样周期采样点数的四倍。
并且,在解码时,只会出现上述3种情况,或者上述3种情况的变异。因此,上述M=2时的情况同样还可以扩展到M为其他值时。
由此可见,可以根据采样点数与每个周期采样点数的倍数之间的大小关系,设置不同的解码条件,不同的解码条件对应着相应的解码值,从而在进行解码时,只需要根据采样点数与每个周期采样点数的倍数之间的大小关系,从而确定出采样点数满足的解码条件,进而确定出相应的解码值。下面,将具体针对不同的解码条件进行具体的介绍。
步骤603:若采样点数小于每个周期采样点数的预设倍数N,则确定解码得到一个为1的bit。
本发明实施例中,若是从当前bit的起始时刻到之后出现的第一个长电平的结束时刻之间的采样点数小于每个周期采样点数的预设倍数N,也就是满足bit_points<N*sample_clk时,则可以确定解码得到一个为1的bit。
若M为2,则预设倍数N为2,例如图8中所示,M为2时,一个bit的起始时刻到长电平的结束时刻之间小于2个采样周期,即当前bit的起始时刻到长电平的结束时刻之间的采样点数小于2个周期的采样点数之和,则解码值为1。
若M为4,则预设倍数N为3,例如图8中所示,M为4时,一个bit的起始时刻到长电平的结束时刻之间小于3个采样周期,即当前bit的起始时刻到长电平的结束时刻之间的采样点数小于3个周期的采样点数之和,则解码值为1。
若M为8,则预设倍数N为5,例如图8中所示,M为8时,当前bit的起始时刻到长电平的结束时刻之间小于5个采样周期,即当前bit的起始时刻到长电平的结束时刻之间的采样点数小于5个周期的采样点数之和,则解码值为1。
步骤604:将当前bit之后出现的第一个跳变时刻确定为下一个bit的起始时刻。
请参见图9所示,下一个bit的起始时刻为长电平之后出现的第一个跳变时刻,也就是当前bit之后出现的第一个signal_pluse所在时刻。具体的,在解码得到当前bit的解码值时,则可以将bit_points清零,直至在(M-1)/2个周期,也就是((M-1)/2)*sample_clk个采样点之后出现的第一个signal_pluse开始计数,直至再次产生long_pluse。
但是,在实际应用中,不可避免的会出现干扰,signal_pluse可能并不会准时的在半个周期之后出现,例如对于M=2,且sample_clk为16而言,理论上在第8个采样点之后会出现signal_pluse,但是在实际应用中,有可能在2个采样点之后,就会出现signal_pluse,或者说等到第10个采样点之后才出现signal_pluse,因此,需要预留一定的冗余范围,本发明实施例中,在将bit_points清零之后,会等待到第((M-1)/2-0.25))*sample_clk个采样点之后出现的第一个signal_pluse开始计数,直至再次产生long_pluse。
步骤605:若所述采样点数大于或者等于每个周期采样点数的N倍,且小于每个周期采样点数的(N+M/2)倍,则确定解码得到一个为0的bit。
本发明实施例中,若是从当前bit的起始时刻到之后出现的第一个长电平的结束时刻之间的采样点数大于或者等于每个周期采样点数的N倍,且小于每个周期采样点数的(N+M/2)倍,也就是满足N*sample_clk≤bit_points<(N+M/2)*sample_clk时,则可以确定解码得到一个为0的bit。
若M为2,例如图8中所示,M为2时,当前bit的起始时刻到长电平的结束时刻之间大于2个采样周期,且小于3个采样周期,即当前bit的起始时刻到长电平的结束时刻之间的采样点数大于2个周期的采样点数之和,且小于3个周期的采样点数之和,则解码值为0。
若M为4,例如图8中所示,M为4时,当前bit的起始时刻到长电平的结束时刻之间大于3个采样周期,且小于5个采样周期,即当前bit的起始时刻到长电平的结束时刻之间的采样点数大于3个周期的采样点数之和,且小于5个周期的采样点数之和,则解码值为0。
若M为8,例如图8中所示,M为8时,当前bit的起始时刻到长电平的结束时刻之间大于5个采样周期,且小于9个采样周期,即当前bit的起始时刻到长电平的结束时刻之间的采样点数大于5个周期的采样点数之和,且小于9个采样周期的采样点数之和,则解码值为0。
步骤606:将回退半个周期的时刻确定为下一个bit的起始时刻,并将当前记录的采样点数设置为半个周期的采样点数。
请参见图9所示,下一个bit的起始时刻为长电平的中间时刻,也就是需要往前回退半个周期,由于当前bit_points已经记录到长电平的结束时刻,那么需要将bit_points的值重新设置,即设置为半个周期的采样点数,即将bit_points设置为sample_clk/2。例如,当sample_clk为16时,则将bit_points设置为sample_clk/2=8,然后继续进行计数,直至下次产生long_pluse。
步骤607:若采样点数大于或者等于每个周期采样点数的(N+M/2)倍,则确定解码得到顺序为0和1的两个bit。
本发明实施例中,若是从当前bit的起始时刻到之后出现的第一个长电平的结束时刻之间的采样点数大于或者等于每个周期采样点数的(N+M/2)倍,也就是满足bit_points≥(N+M/2)*sample_clk时,则可以确定解码得到一个为0和1的两个bit(即解码值为01)。
若M为2,例如图8中所示,M为2时,当前bit的起始时刻到长电平的结束时刻之间大于3个采样周期,即当前bit的起始时刻到长电平的结束时刻之间的采样点数大于3个周期的采样点数之和,则解码值为01。
若M为4,例如图8中所示,M为4时,当前bit的起始时刻到长电平的结束时刻之间大于5个采样周期,即当前bit的起始时刻到长电平的结束时刻之间的采样点数大于5个周期的采样点数之和,则解码值为01。
若M为8,例如图8中所示,M为8时,当前bit的起始时刻到长电平的结束时刻之间大于9个采样周期,即当前bit的起始时刻到长电平的结束时刻之间的采样点数大于9个采样周期的采样点数之和,则解码值为01。
本发明实施例中,在采样点数大于或者等于每个周期采样点数的(N+M/2)倍时,第二个比特的情况是与步骤603的情况一致的,因此后续的操作也就与步骤604相同,因此,对于该种情况的后续描述可参考步骤604部分的描述,在此不再过多赘述。
本发明实施例中,若是确定记录的采样点数不满足上述步骤603、步骤605以及步骤607中的任一条件,则确定解码出错,结束解码流程,还可以输出错误,以提示用户出现错误,及时查错。
步骤608:进行下一个bit的解码。
本发明实施例中,后续比特的处理与上述过程相同,因此后续不再过多赘述。
下面请继续参见图3。
对于帧头而言,在前导码之后检测到第一个long_pluse时,则认为检测到了第一个bit,且第一个bit的解码值一般满足上述步骤605中的条件,即解码值为0,后续的解码则可以参照图6所示的实施例部分进行,进而得到解码后的帧头,当解码后的帧头与预设帧头相同时,则可以认为帧头匹配成功,例如解码得到的帧头为00111101与预设帧头00111101相同,则帧头匹配成功。
步骤307:在帧头匹配成功时,对信号中的数据部分进行解码。
本发明实施例中,数据部分的解码方式与帧头的解码方式完全相同,因此对于数据部分的解码可参考上述对于帧头进行解码部分的描述,不再过多赘述。
本发明实施例中,每次解码出数据之后,可以通过bit_points、signal_pluse、long_pluse三个因素来寻找下一个bit的起始时刻,从而消除理想采样频率和真实信号之间的误差。在解码过程中,bit_points满足步骤603或者步骤607的条件后,下一个bit起始点判断方式采用时间判断方式,即从后续采样到((P/2-0.25)*sample_clk)点数之后出现的第一个signal_pluse出现时刻,认为是下一个bit开始时刻,这种方法可以有效排除这段时间内产生噪声干扰,导致下个bit起始点判断错误的情况。
步骤308:对解码得到的数据进行校验。
每次解码出数据之后,可以进行长度判断,当解码出bit长度大于等于所需解码长度时,即结束解码过程,则可以进入校验模块,以对解码得到的数据进行校验。例如,可以通过循环冗余校验(Cyclic Redundancy Check,CRC)方式对数据进行校验,若是校验通过,则解码过程无误,否则数据可能解码有误。
综上所述,本发明实施例中,通过采样点数来进行数据值的判断,由于采样点的数量受信号的扰动的干扰较小,从而减小了信号的扰动对解码成功率的影响,相较目前的解码方法,解码成功率更高。此外,本发明实施例中,在解码每个bit时,都会对下一个bit的起始采样点进行纠正,以保证解码得到的数据与原始信号同步,进而从另一层面上提升了解码成功率。
请参见图10,基于同一发明构思,本发明实施例提供一种副载波调制的米勒码解码装置100,包括:
记录单元1001,用于记录接收到的信号中当前比特bit的起始时刻,与当前bit的起始时刻之后出现的第一个长脉冲之间的采样点数,其中,在连续检测到大于或者等于一个采样周期的相同电平时,触发长脉冲;
确定单元1002,用于将所述采样点数与每个周期采样点数的倍数进行比较,以确定所述采样点数满足的解码条件;以及,基于确定的解码条件,得到与所述解码条件对应的解码结果。
可选的,确定单元1002,具体用于:
若采样点数小于每个周期采样点数的预设倍数N,则确定解码得到一个为1的bit,其中,N为正整数;或者,
若采样点数大于或者等于每个周期采样点数的N倍,且小于每个周期采样点数的(N+M/2)倍,则确定解码得到一个为0的bit,其中,M为一个bit占据的采样周期;或者,
若采样点数大于或者等于每个周期采样点数的(N+M/2)倍,则确定解码得到顺序为0和1的两个bit。
可选的,确定单元1002还用于:
若采样点数小于每个周期采样点数的预设倍数N,则将当前bit之后出现的第一个跳变脉冲的时刻确定为下一个bit的起始时刻,其中,在信号出现上升沿和/或下降沿时,触发跳变脉冲;或者,
若采样点数大于或者等于每个周期采样点数的N倍,且小于每个周期采样点数的(N+M/2)倍,则将回退半个周期的时刻确定为下一个bit的起始时刻,并将当前记录的采样点数设置为半个周期的采样点数;或者,
若采样点数大于或者等于每个周期采样点数的(N+M/2)倍,则将当前bit之后出现的第一个跳变脉冲的时刻确定为下一个bit的起始时刻。
可选的,确定单元1002将当前bit之后出现的第一个跳变时刻确定为下一个bit的起始时刻,具体包括:
将当前记录的采样点数清零,并在第(每个周期采样点数*((M-1)/2-0.25))个采样点之后的第一个跳变脉冲的时刻重新开始记录。
可选的,
若M为2,则预设倍数N为2;或者,
若M为4,则预设倍数N为3;或者,
若M为8,则预设倍数N为5。
可选的,
记录单元1001,还用于记录信号的前导码的上升沿次数,以及信号处理装置的主时钟的上升沿次数;
确定单元1002,还用于根据信号的前导码的上升沿次数、主时钟的上升沿次数以及主时钟的主频,确定信号的采样周期。
该设备可以用于执行图3-9所示的实施例所提供的方法,因此,对于该设备的各功能模块所能够实现的功能等可参考图3-9所示的实施例的描述,不多赘述。
请参见图11,基于同一发明构思,本发明实施例提供一种副载波调制的米勒码解码设备110,包括至少一个处理器1101,至少一个处理器1101用于执行存储器中存储的计算机程序时实现图3-9所示的实施例提供的副载波调制的米勒码解码方法的步骤。
可选的,至少一个处理器1101具体可以包括中央处理器(CPU)、特定应用集成电路(application specific integrated circuit,ASIC),可以是一个或多个用于控制程序执行的集成电路,可以是使用现场可编程门阵列(field programmable gate array,FPGA)开发的硬件电路,可以是基带处理器。
可选的,至少一个处理器1101可以包括至少一个处理核心。
可选的,该设备还包括存储器1102,存储器1102可以包括只读存储器(read onlymemory,ROM)、随机存取存储器(random access memory,RAM)和磁盘存储器。存储器1102用于存储至少一个处理器1101运行时所需的数据。存储器1102的数量为一个或多个。其中,存储器1102在图11中一并示出,但需要知道的是存储器1102不是必选的功能模块,因此在图11中以虚线示出。
基于同一发明构思,本发明实施例提供一种计算机可读存储介质,所述计算机可读存储介质存储有计算机指令,当所述计算机指令在计算机上运行时,使得计算机执行如图3-9所示的方法。
在具体的实施过程中,计算机可读存储介质包括:通用串行总线闪存盘(Universal Serial Bus flash drive,USB)、移动硬盘、只读存储器(Read-Only Memory,ROM)、随机存取存储器(Random Access Memory,RAM)、磁碟或者光盘等各种可以存储程序代码的存储介质。
在本发明实施例中,应该理解到,所揭露的设备和方法,可以通过其它的方式实现。例如,以上所描述的设备实施例仅仅是示意性的,例如,所述单元或单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,设备或单元的间接耦合或通信连接,可以是电性或其它的形式。
在本发明实施例中的各功能单元可以集成在一个处理单元中,或者各个单元也可以均是独立的物理模块。
所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明实施例的技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备,例如可以是个人计算机,服务器,或者网络设备等,或处理器(processor)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:通用串行总线闪存盘(universal serial bus flash drive)、移动硬盘、ROM、RAM、磁碟或者光盘等各种可以存储程序代码的介质。
以上所述,以上实施例仅用以对本申请的技术方案进行了详细介绍,但以上实施例的说明只是用于帮助理解本发明实施例的方法,不应理解为对本发明实施例的限制。本技术领域的技术人员可轻易想到的变化或替换,都应涵盖在本发明实施例的保护范围之内。

Claims (10)

1.一种副载波调制的米勒码解码方法,其特征在于,包括:
记录接收到的信号中当前比特bit的起始时刻,与当前bit的起始时刻之后出现的第一个长脉冲之间的采样点数,其中,在连续检测到大于或者等于一个采样周期的相同电平时,触发所述长脉冲;
将所述采样点数与每个周期采样点数的倍数进行比较,以确定所述采样点数满足的解码条件;
基于确定的解码条件,得到与所述解码条件对应的解码结果。
2.如权利要求1所述的方法,其特征在于,所述基于确定的解码条件,得到与所述解码条件对应的解码结果,包括:
若所述采样点数小于每个周期采样点数的预设倍数N,则确定解码得到一个为1的bit,其中,N为正整数;或者,
若所述采样点数大于或者等于每个周期采样点数的N倍,且小于每个周期采样点数的(N+M/2)倍,则确定解码得到一个为0的bit,其中,M为一个bit占据的采样周期;或者,
若所述采样点数大于或者等于每个周期采样点数的(N+M/2)倍,则确定解码得到顺序为0和1的两个bit。
3.如权利要求1所述的方法,其特征在于,所述方法还包括:
若所述采样点数小于每个周期采样点数的预设倍数N,则将当前bit之后出现的第一个跳变脉冲的时刻确定为下一个bit的起始时刻,其中,在信号出现上升沿和/或下降沿时,触发所述跳变脉冲;或者,
若所述采样点数大于或者等于每个周期采样点数的N倍,且小于每个周期采样点数的(N+M/2)倍,则将回退半个周期的时刻确定为下一个bit的起始时刻,并将当前记录的采样点数设置为半个周期的采样点数;或者,
若所述采样点数大于或者等于每个周期采样点数的(N+M/2)倍,则将当前bit之后出现的第一个跳变脉冲的时刻确定为下一个bit的起始时刻。
4.如权利要求3所述的方法,其特征在于,所述将当前bit之后出现的第一个跳变时刻确定为下一个bit的起始时刻,包括:
将当前记录的采样点数清零,并在第(每个周期采样点数*((M-1)/2-0.25))个采样点之后的第一个跳变脉冲的时刻重新开始记录。
5.如权利要求2-4任一所述的方法,其特征在于,所述方法还包括:
若M为2,则所述预设倍数N为2;或者,
若M为4,则所述预设倍数N为3;或者,
若M为8,则所述预设倍数N为5。
6.如权利要求1-4任一所述的方法,其特征在于,在记录接收到的信号中当前比特bit的起始时刻,与当前bit的起始时刻之后出现的第一个长脉冲之间的采样点数之前,所述方法还包括:
记录所述信号的前导码的上升沿次数,以及信号处理装置的主时钟的上升沿次数;
根据所述信号的前导码的上升沿次数、所述主时钟的上升沿次数以及所述主时钟的主频,确定所述信号的采样周期。
7.一种副载波调制的米勒码解码装置,其特征在于,包括:
记录单元,用于记录接收到的信号中当前比特bit的起始时刻,与当前bit的起始时刻之后出现的第一个长脉冲之间的采样点数,其中,在连续检测到大于或者等于一个采样周期的相同电平时,触发所述长脉冲;
确定单元,用于将所述采样点数与每个周期采样点数的倍数进行比较,以确定所述采样点数满足的解码条件;以及,基于确定的解码条件,得到与所述解码条件对应的解码结果。
8.如权利要求7所述的装置,其特征在于,所述确定单元,具体用于:
若所述采样点数小于每个周期采样点数的预设倍数N,则确定解码得到一个为1的bit,其中,N为正整数;或者,
若所述采样点数大于或者等于每个周期采样点数的N倍,且小于每个周期采样点数的(N+M/2)倍,则确定解码得到一个为0的bit,其中,M为一个bit占据的采样周期;或者,
若所述采样点数大于或者等于每个周期采样点数的(N+M/2)倍,则确定解码得到顺序为0和1的两个bit。
9.一种副载波调制的米勒码解码设备,其特征在于,包括:
至少一个处理器;以及
与所述至少一个处理器通信连接的存储器;其中,
所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被所述至少一个处理器执行,以使所述至少一个处理器能够执行如权利要求1~6任一权利要求所述的方法。
10.一种计算机存储介质,其特征在于:
所述计算机存储介质存储有计算机指令,当所述计算机指令在计算机上运行时,使得计算机执行如权利要求1-6中任一项所述的方法。
CN201910066916.XA 2019-01-24 2019-01-24 副载波调制的米勒码解码方法、装置和设备及存储介质 Active CN109818713B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201910066916.XA CN109818713B (zh) 2019-01-24 2019-01-24 副载波调制的米勒码解码方法、装置和设备及存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201910066916.XA CN109818713B (zh) 2019-01-24 2019-01-24 副载波调制的米勒码解码方法、装置和设备及存储介质

Publications (2)

Publication Number Publication Date
CN109818713A CN109818713A (zh) 2019-05-28
CN109818713B true CN109818713B (zh) 2021-07-20

Family

ID=66604937

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201910066916.XA Active CN109818713B (zh) 2019-01-24 2019-01-24 副载波调制的米勒码解码方法、装置和设备及存储介质

Country Status (1)

Country Link
CN (1) CN109818713B (zh)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111510151B (zh) * 2020-04-27 2023-08-18 江苏华锐频科技有限公司 一种fm0编码数据的解码方法、装置及读写器
CN115118386B (zh) * 2022-06-21 2024-04-12 上海艾为电子技术股份有限公司 解码方法、装置、解码器、可读存储介质及电子设备
CN115603863A (zh) * 2022-11-30 2023-01-13 紫光同芯微电子有限公司(Cn) 一种输入信号的读取方法及装置

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4112383A (en) * 1976-08-04 1978-09-05 Societe Anonyme Dite: Compagnie Industrielle Des Telecommunications Cit-Alcatel Miller-encoded message decoder
CN101594200A (zh) * 2008-05-30 2009-12-02 中芯国际集成电路制造(北京)有限公司 数据序列的检测方法及从数据序列中恢复信息的方法
CN104820812A (zh) * 2015-04-12 2015-08-05 浙江海康科技有限公司 一种副载波调制的米勒码的解码方法及解码装置
CN204613959U (zh) * 2015-04-12 2015-09-02 浙江海康科技有限公司 一种副载波调制的米勒码解码装置
CN105577588A (zh) * 2015-12-22 2016-05-11 山东大学 一种Miller调制副载波序列的解码方法

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20080267279A1 (en) * 2007-04-26 2008-10-30 Symbol Technologies, Inc. RFID receiver for miller-encoded signals

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4112383A (en) * 1976-08-04 1978-09-05 Societe Anonyme Dite: Compagnie Industrielle Des Telecommunications Cit-Alcatel Miller-encoded message decoder
CN101594200A (zh) * 2008-05-30 2009-12-02 中芯国际集成电路制造(北京)有限公司 数据序列的检测方法及从数据序列中恢复信息的方法
CN104820812A (zh) * 2015-04-12 2015-08-05 浙江海康科技有限公司 一种副载波调制的米勒码的解码方法及解码装置
CN204613959U (zh) * 2015-04-12 2015-09-02 浙江海康科技有限公司 一种副载波调制的米勒码解码装置
CN105577588A (zh) * 2015-12-22 2016-05-11 山东大学 一种Miller调制副载波序列的解码方法

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
"High-level Synthesis-based signal coding";Michael Dossis等;《2016 International Conference on Information and Digital Technologies (IDT)》;20160707;全文 *

Also Published As

Publication number Publication date
CN109818713A (zh) 2019-05-28

Similar Documents

Publication Publication Date Title
CN109818713B (zh) 副载波调制的米勒码解码方法、装置和设备及存储介质
CN105187070A (zh) 一种曼彻斯特编码信号解码方法和装置
CN103825675A (zh) 一种次超声波通信中编码方法及装置
CN108512552A (zh) 一种曼彻斯特码的解码系统及解码方法
US9866239B1 (en) Method and system for bi-phase mark coding (BMC) decoding
CN108256370A (zh) 一种rfid读写器的解码方法及解码系统
CN109327366A (zh) 一种高速1553b总线信号解码器设计方法
CN115086454B (zh) 一种自适应振镜控制信号接口的方法、系统及存储介质
CN113438052B (zh) 信号解码方法、装置、电子设备以及存储介质
CN109922017B (zh) 一种fm0编码数据的解码方法、装置及读写器
JPH04501047A (ja) 自己クロッキング符号化データのためのデータ配列回路及び方法
CN112235218B (zh) 曼彻斯特信号解码方法及装置
JP5978585B2 (ja) 周波数変調信号の2値データの読取方法、読取装置及び読取プログラム
US20100045492A1 (en) Decoding Apparatus and Method
CN112235221A (zh) Bpsk信号解码方法及装置
CN108667562A (zh) 解码装置及其用于解码序列传输信号的方法
CN104242953B (zh) 4选1模式信号的解码器
CN211018863U (zh) Bmc码的解码系统
JPS5936777B2 (ja) F2f信号デコ−ド方法
US6049478A (en) Digital magnetic read channel and method
JP2008205965A (ja) マンチェスタ符号の復号方法
JP2856939B2 (ja) データ受信方法
CN109639361B (zh) 一种信号解码方法、通信终端和具有存储功能的装置
CN111510151B (zh) 一种fm0编码数据的解码方法、装置及读写器
CN107368446B (zh) 一种传输参数自适应的数据传输方法和装置

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