本發(fā)明涉及通信領(lǐng)域,具體地,涉及一種對(duì)fm0編碼進(jìn)行解碼的方法和裝置。
背景技術(shù):
fm0編碼的全稱為雙相間隔碼編碼,其特點(diǎn)是在一個(gè)位窗內(nèi)采用電平變化表示不同邏輯。如果電平只在位窗的起始處翻轉(zhuǎn),其他位置不翻轉(zhuǎn),則表示邏輯“1”;如果電平既在位窗的起始處翻轉(zhuǎn),又在位窗中間翻轉(zhuǎn),則表示邏輯“0”。根據(jù)fm0編碼規(guī)則可以發(fā)現(xiàn),無論傳送的碼元是“0”還是“1”,在位窗的起始處都需要發(fā)生翻轉(zhuǎn)。
目前常見的對(duì)fm0編碼進(jìn)行解碼的方法是:根據(jù)位窗起始處及位窗中的采樣點(diǎn)來判斷此位窗所表示的碼元。假設(shè)某位窗寬度為t,該位窗起始處為低電平,則該位窗中間的采樣值為高電平時(shí)該位窗表示碼元“0”,該位窗中間的采樣值為低電平時(shí)該位窗表示碼元“1”。
這種解碼方法的缺點(diǎn)是:當(dāng)在接收過程中出現(xiàn)頻率偏移情況時(shí),會(huì)造成位窗寬度較大的變化,而解碼模塊仍然是以固定的時(shí)間間隔和t進(jìn)行解碼,因此每次采樣和解碼都會(huì)發(fā)生一定的偏移,隨著通信數(shù)據(jù)的增加,解碼過程中的采樣時(shí)間誤差會(huì)逐漸累計(jì)直至累積偏移過多導(dǎo)致漏讀或多讀情況發(fā)生,從而產(chǎn)生誤判。
技術(shù)實(shí)現(xiàn)要素:
本發(fā)明的目的是提供一種對(duì)fm0編碼進(jìn)行解碼的方法和裝置,其能夠提高對(duì)fm0編碼進(jìn)行解碼的可靠性、解碼速度,并提高接收靈敏度。
為了實(shí)現(xiàn)上述目的,本發(fā)明提供一種對(duì)fm0編碼進(jìn)行解碼的方法,該方法包括:獲取fm0編碼數(shù)據(jù)中相鄰下降沿之間的位窗寬度;對(duì)與所述位窗寬度相對(duì)應(yīng)的待解碼數(shù)據(jù)進(jìn)行緩存;對(duì)已緩存的待解碼數(shù)據(jù)進(jìn)行同步,以確認(rèn)所述待解碼數(shù)據(jù)中哪兩個(gè)相鄰比特代表一個(gè)碼元;以及依序兩兩比特地讀取同步后的已緩存待解碼數(shù)據(jù)并將所讀取的待解碼數(shù)據(jù)解碼為一個(gè)碼元。
本發(fā)明還提供一種對(duì)fm0編碼進(jìn)行解碼的裝置,該裝置包括:位窗寬度獲取模塊,用于獲取fm0編碼數(shù)據(jù)中相鄰下降沿之間的位窗寬度;緩存模塊,用于對(duì)與所述位窗寬度相對(duì)應(yīng)的待解碼數(shù)據(jù)進(jìn)行緩存;同步模塊,用于對(duì)已緩存的待解碼數(shù)據(jù)進(jìn)行同步,以確認(rèn)所述待解碼數(shù)據(jù)中哪兩個(gè)相鄰比特代表一個(gè)碼元;以及解碼模塊,用于依序兩兩比特地讀取同步后的已緩存待解碼數(shù)據(jù)并將所讀取的待解碼數(shù)據(jù)解碼為一個(gè)碼元。
通過上述技術(shù)方案,由于根據(jù)本發(fā)明的對(duì)fm0編碼進(jìn)行解碼的方法和裝置首先獲取fm0編碼數(shù)據(jù)中相鄰下降沿之間的位窗寬度,然后對(duì)與所述位窗寬度相對(duì)應(yīng)的待解碼數(shù)據(jù)進(jìn)行緩存和同步,最后依序兩兩比特地讀取同步后的已緩存待解碼數(shù)據(jù)并將所讀取的待解碼數(shù)據(jù)解碼為一個(gè)碼元,因此根據(jù)本發(fā)明的技術(shù)在解碼時(shí)沒有采用固定的位窗寬度,從而避免了現(xiàn)有解碼技術(shù)中因采用固定位窗寬度而產(chǎn)生累積誤差并導(dǎo)致漏讀或多讀情況的發(fā)生,進(jìn)而能夠提高對(duì)fm0編碼進(jìn)行解碼的可靠性,提高解碼速度,并提高接收靈敏度。
本發(fā)明的其它特征和優(yōu)點(diǎn)將在隨后的具體實(shí)施方式部分予以詳細(xì)說明。
附圖說明
附圖是用來提供對(duì)本發(fā)明的進(jìn)一步理解,并且構(gòu)成說明書的一部分,與下面的具體實(shí)施方式一起用于解釋本發(fā)明,但并不構(gòu)成對(duì)本發(fā)明的限制。在附圖中:
圖1是根據(jù)本發(fā)明一種實(shí)施方式的對(duì)fm0編碼進(jìn)行解碼的方法的流程圖;以及
圖2是根據(jù)本發(fā)明一種實(shí)施方式的對(duì)fm0編碼進(jìn)行解碼的裝置的框圖。
具體實(shí)施方式
以下結(jié)合附圖對(duì)本發(fā)明的具體實(shí)施方式進(jìn)行詳細(xì)說明。應(yīng)當(dāng)理解的是,此處所描述的具體實(shí)施方式僅用于說明和解釋本發(fā)明,并不用于限制本發(fā)明。
本發(fā)明提供一種對(duì)fm0編碼進(jìn)行解碼的方法,如圖1所示,該方法可以包括步驟s1至s4。
步驟s1、獲取fm0編碼數(shù)據(jù)中相鄰下降沿之間的位窗寬度。
假設(shè)fm0編碼的位速率為1/t,則根據(jù)fm0編碼的特點(diǎn),在fm0編碼數(shù)據(jù)中相鄰兩個(gè)下降沿之間的時(shí)間間隔也即位窗寬度只可能出現(xiàn)3種情況,即:t、1.5t和2t。本發(fā)明的核心思想就是依據(jù)這三種位窗寬度對(duì)fm0編碼數(shù)據(jù)進(jìn)行解碼。根據(jù)本發(fā)明的這種解碼算法是基于邊沿捕捉技術(shù)來獲取相鄰下降沿之間的位窗寬度,也即從當(dāng)前下降沿至下一下降沿之間的時(shí)間間隔為一個(gè)位窗寬度,同時(shí)下一下降沿又作為下一位窗寬度的起始時(shí)刻,因此根據(jù)本發(fā)明的解碼技術(shù)所獲得的位窗寬度不是固定值,避免了傳統(tǒng)解碼技術(shù)中因位窗寬度固定而產(chǎn)生累積誤差并導(dǎo)致漏讀或多讀情況的發(fā)生,因而提高了根據(jù)本發(fā)明的解碼技術(shù)的可靠性和接收靈敏度。
另外,可以使用一定頻率的采樣時(shí)鐘對(duì)fm0編碼數(shù)據(jù)的下降沿進(jìn)行采樣和計(jì)數(shù),從而可以根據(jù)計(jì)數(shù)值和采樣時(shí)鐘的頻率來得到兩個(gè)相鄰下降沿之間的時(shí)間間隔也即位窗寬度。
進(jìn)一步地,各個(gè)位窗寬度所對(duì)應(yīng)的待解碼數(shù)據(jù)可以依據(jù)fm0編碼的特點(diǎn)來得到,也即:(1)所獲取的位窗寬度為t,則該位窗寬度所對(duì)應(yīng)的待解碼數(shù)據(jù)為01;(2)所獲取的位窗寬度為1.5t,則若相鄰下降沿之間的上升 沿位于該位窗中間偏左側(cè)的位置處,則該位窗寬度所對(duì)應(yīng)的待解碼數(shù)據(jù)為011,若相鄰下降沿之間的上升沿位于該位窗中間偏右側(cè)的位置處,則該位窗寬度所對(duì)應(yīng)的待解碼數(shù)據(jù)為001;(3)所獲取的位窗寬度為2t,則該位窗寬度所對(duì)應(yīng)的待解碼數(shù)據(jù)為0011。其基本思想就是:以“0”代表半個(gè)位窗的下降沿,以“1”代表半個(gè)位窗的上升沿,則“00”代表一個(gè)位窗的下降沿,“11”代表一個(gè)位窗的上升沿。這樣,接收到的射頻基帶信號(hào),也即fm0編碼數(shù)據(jù)就被轉(zhuǎn)變?yōu)?位的數(shù)字信號(hào),之后只要對(duì)這些數(shù)字信號(hào)進(jìn)行解碼就能完成對(duì)fm0編碼數(shù)據(jù)的解碼。
步驟s2、對(duì)與所述位窗寬度相對(duì)應(yīng)的待解碼數(shù)據(jù)進(jìn)行緩存。
步驟s3、對(duì)已緩存的待解碼數(shù)據(jù)進(jìn)行同步,以確認(rèn)所述待解碼數(shù)據(jù)中哪兩個(gè)相鄰比特代表一個(gè)碼元。
根據(jù)fm0編碼的規(guī)則,字符“01”或“10”應(yīng)該被解碼為碼元“0”,字符“11”或“00”應(yīng)該被解碼為碼元“1”。但是,在對(duì)接收到的fm0編碼數(shù)據(jù)進(jìn)行解碼時(shí),因?yàn)闆]有同步信號(hào),所以在解碼步驟之前,需要先進(jìn)行數(shù)據(jù)同步,以確認(rèn)所述待解碼數(shù)據(jù)中哪兩個(gè)相鄰字符(也即被緩存的相鄰比特)代表一個(gè)碼元,這樣才能進(jìn)行正確的解碼。因?yàn)樵趂m0編碼時(shí),在碼元“1”所對(duì)應(yīng)的位窗中間沒有翻轉(zhuǎn),但在不同碼元所對(duì)應(yīng)的位窗之間或者在碼元“0”所對(duì)應(yīng)的位窗中間有翻轉(zhuǎn),所以可以認(rèn)為兩個(gè)一樣的相鄰字符即“00”或者“11”表示一個(gè)碼元,從而以此方式進(jìn)行同步。另外,為了避免因同步錯(cuò)誤導(dǎo)致后續(xù)解碼完全錯(cuò)位情況的發(fā)生,可以通過檢測(cè)一定長(zhǎng)度的序列來進(jìn)行同步以最大程度上減小出現(xiàn)同步錯(cuò)誤的概率,具體方法是:在解碼出多組兩個(gè)一樣的相鄰字符的情況下,認(rèn)為同步成功。
另外,在fm0編碼中具有前同步碼的情況下,還可以依據(jù)前同步碼對(duì)已緩存的待解碼數(shù)據(jù)進(jìn)行同步。例如,在解碼出連續(xù)6個(gè)“0”和連續(xù)6個(gè)“1”的前同步碼數(shù)據(jù)之后,才認(rèn)為數(shù)據(jù)同步成功了,這樣在對(duì)前同步碼之 后的fm0編碼數(shù)據(jù)進(jìn)行解碼時(shí)才能夠?qū)崿F(xiàn)正確的解碼。本領(lǐng)域技術(shù)人員應(yīng)當(dāng)理解的是,上述前同步碼僅是示例,實(shí)際上,不同的應(yīng)用場(chǎng)合前同步碼也會(huì)各有不同。
步驟s4、依序兩兩比特地讀取同步后的已緩存待解碼數(shù)據(jù)并將所讀取的待解碼數(shù)據(jù)解碼為一個(gè)碼元。
例如,若同步后的已緩存待解碼數(shù)據(jù)為01001011,則前兩個(gè)字符01被解碼為碼元0,第三第四個(gè)字符00被解碼為碼元1,第五第六個(gè)字符10被解碼為碼元0,最后兩個(gè)字符11被解碼為碼元1。
至此,就實(shí)現(xiàn)了對(duì)fm0編碼的解碼。
優(yōu)選地,步驟s1可以包括:獲取所述fm0編碼數(shù)據(jù)中相鄰兩個(gè)極大值之間的位窗寬度。由于干擾信號(hào)通常從基帶信號(hào)的低電平引入,而且干擾信號(hào)的極大值往往明顯低于正?;鶐盘?hào)的極大值,如果把干擾信號(hào)的下降沿也采集進(jìn)來,則整個(gè)解碼的節(jié)拍就會(huì)發(fā)生錯(cuò)誤,導(dǎo)致之后的解碼完全錯(cuò)誤。而通過僅獲取fm0編碼數(shù)據(jù)中相鄰極大值之間的位窗寬度,則能夠在解碼過程中剔除干擾信號(hào),使得根據(jù)本發(fā)明的解碼方法的抗干擾性更強(qiáng),解碼更準(zhǔn)確。
優(yōu)選地,在步驟s1之前,根據(jù)本發(fā)明的解碼方法還可以包括:接收解碼起始標(biāo)志位。也即,只有在接收到解碼起始標(biāo)志位時(shí)才開始執(zhí)行步驟s1-s4。
優(yōu)選地,在步驟s4之后,根據(jù)本發(fā)明的解碼方法還可以包括:接收解碼結(jié)束標(biāo)志位。也即,在接收到解碼結(jié)束標(biāo)志為之后則停止解碼,否則繼續(xù)等待進(jìn)行隨后的解碼。
本發(fā)明還提供一種對(duì)fm0編碼進(jìn)行解碼的裝置,如圖2所示,該裝置包括:位窗寬度獲取模塊21,用于獲取fm0編碼數(shù)據(jù)中相鄰下降沿之間的位窗寬度;緩存模塊22,用于對(duì)與所述位窗寬度相對(duì)應(yīng)的待解碼數(shù)據(jù)進(jìn)行緩存;同步模塊23,用于對(duì)已緩存的待解碼數(shù)據(jù)進(jìn)行同步,以確認(rèn)所述待解碼 數(shù)據(jù)中哪兩個(gè)相鄰比特代表一個(gè)碼元;以及解碼模塊24,用于依序兩兩比特地讀取同步后的已緩存待解碼數(shù)據(jù)并將速讀取的待解碼數(shù)據(jù)解碼為一個(gè)碼元。例如,若同步后的已緩存待解碼數(shù)據(jù)為01001011,則解碼模塊24將前兩個(gè)字符01解碼為碼元0,將第三第四個(gè)字符00解碼為碼元1,將第五第六個(gè)字符10解碼為碼元0,將最后兩個(gè)字符11解碼為碼元1。
假設(shè)fm0編碼的位速率為1/t,則根據(jù)fm0編碼的特點(diǎn),在fm0編碼數(shù)據(jù)中相鄰兩個(gè)下降沿之間的時(shí)間間隔也即位窗寬度只可能出現(xiàn)3種情況,即:t、1.5t和2t。本發(fā)明的核心思想就是依據(jù)這三種位窗寬度對(duì)fm0編碼數(shù)據(jù)進(jìn)行解碼。位窗寬度獲取模塊21則是基于邊沿捕捉技術(shù)來獲取相鄰下降沿之間的位窗寬度,也即從當(dāng)前下降沿至下一下降沿之間的時(shí)間間隔為一個(gè)位窗寬度,同時(shí)下一下降沿又作為下一位窗寬度的起始時(shí)刻,因此位窗寬度獲取模塊21所獲得的位窗寬度不是固定值,避免了傳統(tǒng)解碼技術(shù)中因位窗寬度固定而產(chǎn)生累積誤差并導(dǎo)致漏讀或多讀情況的發(fā)生,因而提高了根據(jù)本發(fā)明的解碼裝置的可靠性和接收靈敏度。
另外,位窗寬度獲取模塊21可以使用一定頻率的采樣時(shí)鐘對(duì)fm0編碼數(shù)據(jù)的下降沿進(jìn)行采樣和計(jì)數(shù),從而可以根據(jù)計(jì)數(shù)值和采樣時(shí)鐘的頻率來得到兩個(gè)相鄰下降沿之間的時(shí)間間隔也即位窗寬度。
進(jìn)一步地,各個(gè)位窗寬度所對(duì)應(yīng)的待解碼數(shù)據(jù)可以依據(jù)fm0編碼的特點(diǎn)來得到,也即:(1)所獲取的位窗寬度為t,則該位窗寬度所對(duì)應(yīng)的待解碼數(shù)據(jù)為01;(2)所獲取的位窗寬度為1.5t,則若相鄰下降沿之間的上升沿位于該位窗中間偏左側(cè)的位置處,則該位窗寬度所對(duì)應(yīng)的待解碼數(shù)據(jù)為011,若相鄰下降沿之間的上升沿位于該位窗中間偏右側(cè)的位置處,則該位窗寬度所對(duì)應(yīng)的待解碼數(shù)據(jù)為001;(3)所獲取的位窗寬度為2t,則該位窗寬度所對(duì)應(yīng)的待解碼數(shù)據(jù)為0011。其基本思想就是:以“0”代表半個(gè)位窗的下降沿,以“1”代表半個(gè)位窗的上升沿,則“00”代表一個(gè)位窗的下降 沿,“11”代表一個(gè)位窗的上升沿。這樣,接收到的射頻基帶信號(hào),也即fm0編碼數(shù)據(jù)就被轉(zhuǎn)變?yōu)?位的數(shù)字信號(hào),之后只要對(duì)這些數(shù)字信號(hào)進(jìn)行解碼就能完成對(duì)fm0編碼數(shù)據(jù)的解碼。
另外,位窗寬度獲取模塊21優(yōu)選獲取所述fm0編碼數(shù)據(jù)中相鄰兩個(gè)極大值之間的位窗寬度。由于干擾信號(hào)通常從基帶信號(hào)的低電平引入,而且干擾信號(hào)的極大值往往明顯低于正常基帶信號(hào)的極大值,如果把干擾信號(hào)的下降沿也采集進(jìn)來,則整個(gè)解碼的節(jié)拍就會(huì)發(fā)生錯(cuò)誤,導(dǎo)致之后的解碼完全錯(cuò)誤。而通過僅獲取fm0編碼數(shù)據(jù)中相鄰極大值之間的位窗寬度,則能夠在解碼過程中剔除干擾信號(hào),使得根據(jù)本發(fā)明的解碼裝置的抗干擾性更強(qiáng),解碼更準(zhǔn)確。
根據(jù)fm0編碼的規(guī)則,字符“01”或“10”應(yīng)該被解碼為碼元“0”,字符“11”或“00”應(yīng)該被解碼為碼元“1”。但是,在對(duì)接收到的fm0編碼數(shù)據(jù)進(jìn)行解碼時(shí),因?yàn)闆]有同步信號(hào),所以在解碼模塊24解碼之前,同步模塊23需要先進(jìn)行數(shù)據(jù)同步,以確認(rèn)所述待解碼數(shù)據(jù)中哪兩個(gè)相鄰字符(也即被緩存的相鄰比特)代表一個(gè)碼元,這樣解碼模塊24才能進(jìn)行正確的解碼。因?yàn)樵趂m0編碼時(shí),在碼元“1”所對(duì)應(yīng)的位窗中間沒有翻轉(zhuǎn),但在不同碼元所對(duì)應(yīng)的位窗之間或者在碼元“0”所對(duì)應(yīng)的位窗中間有翻轉(zhuǎn),所以可以認(rèn)為兩個(gè)一樣的相鄰字符即“00”或者“11”表示一個(gè)碼元,從而同步模塊23可以以此方式進(jìn)行同步。另外,為了避免因同步錯(cuò)誤導(dǎo)致后續(xù)解碼完全錯(cuò)位情況的發(fā)生,同步模塊23可以通過檢測(cè)一定長(zhǎng)度的序列來進(jìn)行同步以最大程度上減小出現(xiàn)同步錯(cuò)誤的概率,具體方法是:若解碼模塊24解碼出多組兩個(gè)一樣的相鄰字符的情況下,則同步模塊23確認(rèn)數(shù)據(jù)同步成功。
另外,在fm0編碼中具有前同步碼的情況下,同步模塊23還可以依據(jù)前同步碼對(duì)已緩存的待解碼數(shù)據(jù)進(jìn)行同步。例如,在解碼模塊24解碼出連 續(xù)6個(gè)“0”和連續(xù)6個(gè)“1”的前同步碼數(shù)據(jù)之后,同步模塊23確認(rèn)數(shù)據(jù)同步成功,這樣在解碼模塊24對(duì)前同步碼之后的fm0編碼數(shù)據(jù)進(jìn)行解碼時(shí)才能夠?qū)崿F(xiàn)正確的解碼。本領(lǐng)域技術(shù)人員應(yīng)當(dāng)理解的是,上述前同步碼僅是示例,實(shí)際上,不同的應(yīng)用場(chǎng)合前同步碼也會(huì)各有不同。
優(yōu)選地,如圖2所示,根據(jù)本發(fā)明的解碼裝置還可以包括解碼起始標(biāo)志位接收模塊25,用于接收解碼起始標(biāo)志位。這樣,只有在解碼起始標(biāo)志位接收模塊25接收到解碼起始標(biāo)志位時(shí)位窗寬度獲取模塊21、緩存模塊22、同步模塊23和解碼模塊24才開始工作。
優(yōu)選地,如圖2所示,根據(jù)本發(fā)明的解碼裝置還可以包括解碼結(jié)束標(biāo)志位接收模塊26,用于接收解碼結(jié)束標(biāo)志位。也即,在解碼結(jié)束標(biāo)志位接收模塊26接收到解碼結(jié)束標(biāo)志為之后根據(jù)本發(fā)明的解碼裝置停止解碼,否則繼續(xù)等待進(jìn)行隨后的解碼。
以上結(jié)合附圖詳細(xì)描述了本發(fā)明的優(yōu)選實(shí)施方式,但是,本發(fā)明并不限于上述實(shí)施方式中的具體細(xì)節(jié),在本發(fā)明的技術(shù)構(gòu)思范圍內(nèi),可以對(duì)本發(fā)明的技術(shù)方案進(jìn)行多種簡(jiǎn)單變型,這些簡(jiǎn)單變型均屬于本發(fā)明的保護(hù)范圍。
另外需要說明的是,在上述具體實(shí)施方式中所描述的各個(gè)具體技術(shù)特征,在不矛盾的情況下,可以通過任何合適的方式進(jìn)行組合。為了避免不必要的重復(fù),本發(fā)明對(duì)各種可能的組合方式不再另行說明。
此外,本發(fā)明的各種不同的實(shí)施方式之間也可以進(jìn)行任意組合,只要其不違背本發(fā)明的思想,其同樣應(yīng)當(dāng)視為本發(fā)明所公開的內(nèi)容。