本發(fā)明涉及電力線通信領(lǐng)域,尤其涉及一種rs編碼加字節(jié)交織方法及系統(tǒng)。
背景技術(shù):
:電力線通信(powerlinecommunication,plc)是指利用電力線作為傳輸介質(zhì)實現(xiàn)數(shù)據(jù)傳輸?shù)囊环N通信技術(shù)。由于電力基礎(chǔ)設(shè)施的廣泛普及,在電力線上進行數(shù)據(jù)傳輸可以大大降低通信成本。在實際的通信過程中,電力線信道存在著傳輸環(huán)境惡劣和噪聲干擾嚴重的問題。為提高數(shù)據(jù)傳輸?shù)目煽啃裕肓思m錯碼技術(shù)來進行差錯控制。rs(reedsolomon)碼作為一種線性分組循環(huán)碼,具有極強的隨機錯誤與突發(fā)錯誤糾錯能力,已廣泛應(yīng)用于電力線通信領(lǐng)域。為進一步提高接收機抗干擾能力,尤其是對抗突發(fā)脈沖干擾和窄帶干擾,rs碼通常與字節(jié)交織器搭配使用。字節(jié)交織器的主要作用是打亂原始字節(jié)的順序,增加數(shù)據(jù)分布的隨機性,降低突發(fā)脈沖干擾對數(shù)據(jù)的影響。然而,現(xiàn)有的rs碼與字節(jié)交織器搭配使用的編碼加字節(jié)交織方法,雖然可以提高系統(tǒng)的抗突發(fā)脈沖干擾性能,卻仍受同步于工頻的周期噪聲而導(dǎo)致電力線通信干擾較大。技術(shù)實現(xiàn)要素:本發(fā)明解決的技術(shù)問題是降低同步于工頻的周期噪聲對電力線通信的干擾。為解決上述技術(shù)問題,本發(fā)明實施例提供一種rs編碼加字節(jié)交織方法,包括:獲取待編碼數(shù)據(jù)的字節(jié)數(shù);根據(jù)所述待編碼數(shù)據(jù)的字節(jié)數(shù)以及預(yù)設(shè)的rs編碼參數(shù)對所述待編碼數(shù) 據(jù)進行第一類交織,得到第一交織結(jié)果;對所述第一交織結(jié)果按行進行rs編碼;將rs編碼結(jié)果按列輸出并進行第二類交織,得到第二交織結(jié)果,包括:將所述rs編碼結(jié)果按列從上向下依次排列形成數(shù)據(jù)列表;將所述數(shù)據(jù)列表按列進行循環(huán)移位操作;將所述循環(huán)移位操作得到的結(jié)果按列輸出,得到所述第二交織結(jié)果;其中,所述數(shù)據(jù)列表行數(shù)為m2,m2=n-1,n為一個同步于工頻的噪聲周期內(nèi)的傳輸碼元的個數(shù);所述數(shù)據(jù)列表列數(shù)為所述rs編碼結(jié)果的總字節(jié)長度與m2之商向上取整;所述數(shù)據(jù)列表中的每一列均存在一一對應(yīng)的所述循環(huán)移位操作的操作位數(shù),且奇數(shù)列與偶數(shù)列循環(huán)移位的方向不同??蛇x的,所述將所述數(shù)據(jù)列表按列進行循環(huán)移位操作,包括:對所述數(shù)據(jù)列表中的第i列進行循環(huán)移位的操作位數(shù)z=mod(i-1,m2)??蛇x的,采用第一交織器對所述待編碼數(shù)據(jù)進行第一類交織,得到的第一交織結(jié)果的行數(shù)m1=ceil(l/kmax),且前m1-1行的第1~kmax列均被有效數(shù)據(jù)填滿,其中,l為輸入的待編碼數(shù)據(jù)的字節(jié)數(shù),kmax為rs編碼參數(shù)中的最大k值,ceil(l/kmax)為取大于l/kmax的最小整數(shù)值??蛇x的,所述根據(jù)所述待編碼數(shù)據(jù)的字節(jié)數(shù)以及預(yù)設(shè)的rs編碼參數(shù)對所述待編碼數(shù)據(jù)進行第一類交織,包括:將所述輸入的待編碼數(shù)據(jù)的前r×m1個字節(jié)按列從上向下依次寫入至所述第一交織器,每列填充m1個字節(jié);剩余的l-r×m1個字節(jié)從第r+1行按列從上向下依次寫入至所述第一交織器,每列填充m1-1個字節(jié),直至所述第一交織器的第kmax列填滿;其中,r為最后一行的字節(jié)數(shù),且r=l-kmax×(m1-1)。可選的,所述對所述第一交織結(jié)果按行進行rs編碼,包括:將所述前m1-1行中的字節(jié)采用所述kmax對應(yīng)的rs編碼參數(shù)進行編碼,將最后一行中的字節(jié)采用大于r的最小k值對應(yīng)的rs編碼參數(shù)進行編碼??蛇x的,采用公式m2=ceil((fs/(ft×2))/8)-1計算得到m2,其中:fs為采樣頻率,ft為工頻頻率,ceil((fs/(ft×2))/8)為取大于(fs/(ft×2))/8的最小整數(shù)值。本發(fā)明實施例還提供了一種rs編碼加字節(jié)交織系統(tǒng),包括:第一交織器,適于接收輸入的待編碼數(shù)據(jù),并根據(jù)所述待編碼數(shù)據(jù)的字節(jié)數(shù)以及預(yù)設(shè)的rs編碼參數(shù)對所述待編碼數(shù)據(jù)進行第一類交織;rs編碼器,適于接收所述第一交織器生成的第一交織結(jié)果,并對所述第一交織結(jié)果按行進行rs編碼;第二交織器,適于對所述rs編碼器按列輸出的rs編碼結(jié)果按列從上向下依次排列形成數(shù)據(jù)列表;將所述數(shù)據(jù)列表按列進行循環(huán)移位操作;其中,所述數(shù)據(jù)列表行數(shù)為m2,m2=n-1,n為一個同步于工頻的噪聲周期內(nèi)的傳輸碼元的個數(shù);所述數(shù)據(jù)列表列數(shù)為所述rs編碼結(jié)果的總字節(jié)長度與m2之商向上取整;所述數(shù)據(jù)列表中的每一列均存在一一對應(yīng)的所述循環(huán)移位操作的操作位數(shù),且奇數(shù)列與偶數(shù)列循環(huán)移位的方向不同;輸出單元,適于將所述循環(huán)移位操作得到的結(jié)果按列輸出,得到第二交織結(jié)果??蛇x的,所述第二交織器適于對所述數(shù)據(jù)列表中的第i列進行循環(huán)移位的操作位數(shù)z=mod(i-1,m2)的循環(huán)移位操作。可選的,所述第一交織器得到的第一交織結(jié)果的行數(shù)m1=ceil(l/kmax),且前m1-1行的第1~kmax列均被有效數(shù)據(jù)填滿,其中,l為輸入的待編碼數(shù)據(jù)的字節(jié)數(shù),kmax為rs編碼參數(shù)中的最大k值,ceil(l/kmax)為取大于l/kmax的最小整數(shù)值。可選的,所述第一交織器適于:將所述輸入的待編碼數(shù)據(jù)的前r×m1個字節(jié)按列從上向下依次寫入至所述第一交織器,每列填充m1個字節(jié);剩余的l-r×m1個字節(jié)從第r+1行按列從上向下依次寫入至所述第一交織器,每列填充m1-1個字節(jié),直至所述第一交織器的第kmax列填滿;其中,r為最后一行的字節(jié)數(shù),且r=l-kmax×(m1-1)??蛇x的,所述rs編碼器適于對所述第一交織結(jié)果按行進行編碼,其中:將所述前m1-1行中的字節(jié)采用所述kmax對應(yīng)的rs編碼參數(shù)進行編碼,將最后一行中的字節(jié)采用大于r的最小k值對應(yīng)的rs編碼參數(shù)進行編碼??蛇x的,所述第二交織器適于采用公式m2=ceil((fs/(ft×2))/8)-1計算得到m2,其中:fs為采樣頻率,ft為工頻頻率,ceil((fs/(ft×2))/8)為取大于(fs/(ft×2))/8的最小整數(shù)值。與現(xiàn)有技術(shù)相比,本發(fā)明實施例的技術(shù)方案具有以下有益效果:在對待編碼數(shù)據(jù)進行第一類交織和rs編碼后,并不是將經(jīng)過rs編碼的數(shù)據(jù)作為最終的rs編碼加字節(jié)交織結(jié)果輸出,而是對rs編碼結(jié)果進行第二類交織。在第二類交織過程中,先將rs編碼結(jié)果按列從上向下依次排列形成行數(shù)為m2的數(shù)據(jù)列表,m2與當(dāng)前信道的工頻周期相關(guān);再對數(shù)據(jù)列表中的每一列執(zhí)行相應(yīng)操作位數(shù)和方向的循環(huán)移位操作,將同一行的數(shù)據(jù)盡可能地打散,且每一列都進行了對應(yīng)循環(huán)操作位數(shù)和循環(huán)方向的循環(huán)移位操作,可以使同時受同步于工頻的周期噪聲影響的數(shù)據(jù)分散開,從而可以有效提高對抗同步于工頻的周期噪聲的性能。附圖說明圖1是現(xiàn)有的rs編碼加字節(jié)交織后的數(shù)據(jù)分布示意圖;圖2是本發(fā)明實施例中的一種rs編碼加字節(jié)交織方法的流程圖;圖3是本發(fā)明實施例中提供的rs編碼加字節(jié)交織方法與現(xiàn)有rs編碼加字節(jié)交織方法的性能比較圖;圖4是本發(fā)明實施例中的一種rs編碼加字節(jié)交織系統(tǒng)的結(jié)構(gòu)示意圖。具體實施方式目前,通常將rs編碼器與字節(jié)交織器搭配使用,以此來對抗突發(fā)脈沖干擾和窄帶干擾。字節(jié)交織器的主要作用是打亂原始字節(jié)的順序,將相鄰字節(jié)分散在不同的rs碼字中,增加數(shù)據(jù)分布的隨機性,從而有效地降低突發(fā)脈沖干擾對數(shù)據(jù)的影響。現(xiàn)有的rs編碼器與字節(jié)交織器搭配使用時,字節(jié)交織器的列數(shù)等于rs碼碼長,行數(shù)由字節(jié)交織器輸入字節(jié)數(shù)以及交織器信息區(qū)的列數(shù)決定。例如,對于rs(n,k)碼,字節(jié)交織器的列數(shù)為n,前k列為信息位,后n-k列為校驗位,行數(shù)隨輸入字節(jié)數(shù)而變?,F(xiàn)有的rs編碼器加字節(jié)交織器的編碼加字節(jié)交織方法流程如下:先將輸 入數(shù)據(jù)按列輸入字節(jié)交織器的信息位部分,即從第一列開始輸入,第一列滿后從第二列輸入,以此類推,直至所有輸入數(shù)據(jù)填充完畢,信息區(qū)未填充部分用0填充。然后按行做rs(n,k)編碼,將每行信息區(qū)數(shù)據(jù)生成的n-k位校驗數(shù)據(jù)分別對應(yīng)填充到交織器的校驗區(qū)位置。編碼完成后的數(shù)據(jù)分布如圖1所示。編碼完成后按列輸出,即先輸出第一列數(shù)據(jù),再輸出第二列數(shù)據(jù),以此類推至第n列。然而,現(xiàn)有的編碼加字節(jié)交織方法雖然能夠提高系統(tǒng)的抗突發(fā)脈沖干擾性能,但在電力線系統(tǒng)中,仍受電力線系統(tǒng)中同樣占主導(dǎo)因素的同步于工頻的周期噪聲的影響。在本發(fā)明實施例中,在對待編碼數(shù)據(jù)進行第一類交織和rs編碼后,并不是直接將經(jīng)過rs編碼的數(shù)據(jù)作為最終的rs編碼加字節(jié)交織結(jié)果輸出,而是對rs編碼結(jié)果進行第二類交織。在第二類交織過程中,先將rs編碼結(jié)果按列從上向下依次排列形成行數(shù)為m2的數(shù)據(jù)列表,m2與當(dāng)前信道的工頻周期相關(guān);再對數(shù)據(jù)列表中的每一列執(zhí)行相應(yīng)操作位數(shù)和方向的循環(huán)移位操作,將同一行的數(shù)據(jù)盡可能地打散,且每一列都進行了對應(yīng)循環(huán)操作位數(shù)和循環(huán)方向的循環(huán)移位操作,可以使同時受同步于工頻的周期噪聲影響的數(shù)據(jù)分散開,從而可以有效提高對抗同步于工頻的周期噪聲的性能。為使本發(fā)明的上述目的、特征和有益效果能夠更為明顯易懂,下面結(jié)合附圖對本發(fā)明的具體實施例做詳細的說明。本發(fā)明實施例提供了一種rs編碼加字節(jié)交織方法,參照圖2,以下通過具體步驟進行詳細說明。步驟s201,獲取待編碼數(shù)據(jù)的字節(jié)數(shù)。在具體實施中,可以預(yù)先獲知當(dāng)前的待編碼數(shù)據(jù)的字節(jié)數(shù)l。步驟s202,根據(jù)所述待編碼數(shù)據(jù)的字節(jié)數(shù)以及預(yù)設(shè)的rs編碼參數(shù)對所述待編碼數(shù)據(jù)進行第一類交織。在具體實施中,可以采用預(yù)設(shè)的第一交織器對待編碼數(shù)據(jù)進行第一類交織,從而得到第一交織結(jié)果。在本發(fā)明實施例中,可以先根據(jù)待編碼數(shù)據(jù)的字節(jié)數(shù)以及預(yù)先設(shè)定好的rs編碼參數(shù),來確定第一交織器對應(yīng)的行數(shù)m1,也即第一交織結(jié)果的行數(shù)m1。在本發(fā)明一實施例中,采用公式m1=ceil(l/kmax)計算第一交織器的行數(shù)m1,其中,kmax為適用于當(dāng)前rs編碼參數(shù)中的最大的k值,ceil為向上取整運算。rs編碼參數(shù)可以根據(jù)實際需要預(yù)先配置,參照表1,給出了幾組rs編碼過程中使用的參數(shù),每一組參數(shù)對應(yīng)的編碼效率相同。nkt糾錯能力(字)4836640305322442418316122861表1在本發(fā)明實施例中,可以根據(jù)待編碼數(shù)據(jù)的字節(jié)數(shù)l,從表1中選擇對應(yīng)的k值和n值,選擇規(guī)則為:當(dāng)l大于表1中的所有k值時,則選取的k值為所有k值中的最大值;當(dāng)l小于表1中的所有k值時,則選取的k值為大于l的最小k值,選取的k值為大于l的最小k值。例如,l=26,則選取的k值為30。結(jié)合表1,當(dāng)待編碼數(shù)據(jù)的字節(jié)數(shù)l=82時,從表1中可知選取出的k值為所有k值中的最大值,即kmax=36,第一交織器的行數(shù)m1=ceil(l/kmax)=ceil(82/36)=3。在采用第一交織器執(zhí)行第一類交織時,將第一交織器信息區(qū)的第一行到第m1-1行用有效數(shù)據(jù)填滿,即:將前m1-1行的第1~kmax列均被待編碼數(shù)據(jù) 填滿,也即信息區(qū)的第一行到第m1-1行均被待編碼數(shù)據(jù)填滿,這樣前m1-1行中填充的有效數(shù)據(jù)占用的字節(jié)數(shù)為kmax×(m1-1),最后一行剩余的字節(jié)數(shù)r=l-kmax×(m1-1)。具體地,采用如下方式將待編碼數(shù)據(jù)輸入至第一交織器的信息區(qū)中:1)將待編碼數(shù)據(jù)的前r×m1個字節(jié)從第一列開始,按照從上向下的順序開始填充,每列均填充m1個字節(jié),然后是第二列,以此類推,直至第r列填滿;2)剩余的l-r×m1個字節(jié)從第r+1列開始,按照從上向下的順序開始填充,每列均填充m1-1個字節(jié),直到第一交織器的第kmax列填滿。此時,第一交織器的信息區(qū)的前m1-1行的第1~kmax列均被有效數(shù)據(jù)填充,而最后一行只有前1~r列被有效數(shù)據(jù)填充,也即最后一行只填充了r個有效數(shù)據(jù)。步驟s203,對所述第一交織結(jié)果按行進行rs編碼。在具體實施中,可以將得到的第一交織結(jié)果輸入至rs編碼器,通過rs編碼器對第一交織結(jié)果進行rs編碼。rs編碼器在編碼過程中,可以按行取字,即按照行的方式進行編碼。在本發(fā)明一實施例中,由于前m1-1行均被有效數(shù)據(jù)填滿,且m1是由kmax計算得到的,因此,rs編碼器在編碼過程中,可以將前m1-1行中的字節(jié)采用kmax對應(yīng)的rs編碼參數(shù)進行編碼,將前m1-1行編碼生成的校驗碼元放入第一交織器的校驗區(qū)。由于第一交織器的信息區(qū)的最后一行未被有效數(shù)據(jù)填滿,因此可以將最后一行中的字節(jié)采用大于等于r的最小k值對應(yīng)的rs編碼參數(shù)進行編碼。對最后一行編碼生成的校驗碼元緊挨在補充的零字節(jié)之后。例如,結(jié)合表1,設(shè)定待編碼數(shù)據(jù)的字節(jié)數(shù)l=82,表1中kmax=36,對應(yīng)的n=48,則第一交織器的行數(shù)m1=ceil(l/kmax)=ceil(82/36)=3,列數(shù)為48。在使用rs編碼器進行編碼時,將前2行中的字節(jié)采用kmax=36對應(yīng)的rs編碼參數(shù)進行編碼,每一行均生成n-kmax=12個校驗碼元。最后一行中的有效字節(jié)數(shù)r=10,在表1中可以得知大于10的最小k=12,對應(yīng)的n=16,則最后一行中需要補充2個零字節(jié),之后將最后一行中的字節(jié)采用k=12對應(yīng)的rs 編碼參數(shù)進行編碼,最后一行生成16-12=4個校驗碼元。最后一行采用大于所填充的有效字節(jié)數(shù)的最小k值對應(yīng)的rs編碼參數(shù)進行編碼,而不是采用與前m1-1行相同的k值進行編碼,這樣可以減少在最后一行中補充的零字節(jié)的個數(shù),從而可以提高rs編碼的效率。以上述實施例為例,若最后一行也采用kmax=36進行編碼,則最后一行需要補充z=36-10=26個零字節(jié),最后一行的編碼效率為(kmax-z)/n=10/48。而采用本發(fā)明實施例中的rs編碼方法,最后一行補充2個零字節(jié),k=12時對應(yīng)的n=16,最后一行的編碼效率為10/16。由此可見,本發(fā)明實施例中提供的rs編碼方法可以有效提高rs編碼的效率。在本發(fā)明實施例中,在對第一交織結(jié)果按行進行rs編碼,得到rs編碼結(jié)果后,并不是直接將得到的rs編碼結(jié)果作為最終的rs編碼加字節(jié)交織結(jié)果輸出??紤]到現(xiàn)有技術(shù)中存在傳輸碼元受同步于工頻的周期噪聲的影響,可以繼續(xù)執(zhí)行步驟s204,以減小同步于工頻的周期噪聲對傳輸碼元的影響。步驟s204,將rs編碼結(jié)果按列輸出并進行第二類交織,得到第二交織結(jié)果。在具體實施中,可以采用預(yù)設(shè)的第二交織器對rs編碼結(jié)果進行第二類交織。第二交織器的行數(shù)m2與工頻ft以及當(dāng)前系統(tǒng)采樣頻率fs相關(guān),且m2=n-1,n為一個同步于工頻的噪聲周期內(nèi)的傳輸碼元的個數(shù),列數(shù)為rs編碼結(jié)果的總字節(jié)長度與m2之商向上取整。在本發(fā)明一實施例中,第二交織器的行數(shù)m2=ceil((fs/(ft×2))/8)-1。在確定了第二交織器的行數(shù)m2和列數(shù)之后,可以將rs編碼結(jié)果按列從上向下依次進行輸入到第二交織器中,在第二交織器中形成行數(shù)為m2的數(shù)據(jù)列表。當(dāng)最后一列未能被rs編碼結(jié)果填滿時,可以用零字節(jié)填充。在形成行數(shù)為m2的數(shù)據(jù)列表后,將數(shù)據(jù)列表按列進行循環(huán)移位操作。在本發(fā)明實施例中,針對于數(shù)據(jù)列表中的每一列,均可以設(shè)置一一對應(yīng)的循環(huán)移位的操作位數(shù),相鄰列對應(yīng)的循環(huán)移位的操作位數(shù)不相同,且奇數(shù)列的循環(huán)移位方向與偶數(shù)列的循環(huán)移位方向不同,這樣每一行的數(shù)據(jù)就會被分散開,也即本該同時受到同步于工頻的周期噪聲的影響的數(shù)據(jù)被打散,從而可以提 高抗同步于工頻的周期噪聲干擾的性能。在本發(fā)明實施例中,數(shù)據(jù)列表中第i列的循環(huán)移位的操作位數(shù)z可以為z=mod(i-1,m2)。在獲取到對應(yīng)的循環(huán)移位的操作位數(shù)后,可以按照一定的移位準則在相應(yīng)的移動方向上移動相應(yīng)的操作位數(shù)。例如,m2=6,則數(shù)據(jù)列表中的第一列不進行循環(huán)移位,第二列中的所有數(shù)據(jù)從上向下移動1位,第三列中的所有數(shù)據(jù)從下向上移動2位,以此類推??梢岳斫獾氖?,在本發(fā)明其他實施例中,還可以存在其他類型的循環(huán)移位操作方法,只要滿足將第二交織器中同一行的數(shù)據(jù)盡量打散即可。在將數(shù)據(jù)列表中的所有列均執(zhí)行循環(huán)移位操作后,將循環(huán)移位操作得到的結(jié)果按列輸出,作為第二交織結(jié)果。由此可見,在對待編碼數(shù)據(jù)進行第一類交織和rs編碼后,并不是將經(jīng)過rs編碼的數(shù)據(jù)作為最終的rs編碼加字節(jié)交織結(jié)果輸出,而是對rs編碼結(jié)果進行第二類交織。在第二類交織過程中,先將rs編碼結(jié)果按列從上向下依次排列形成行數(shù)為m2的數(shù)據(jù)列表,m2與當(dāng)前信道的工頻周期相關(guān);再對數(shù)據(jù)列表中的每一列執(zhí)行相應(yīng)操作位數(shù)和方向的循環(huán)移位操作,將同一行的數(shù)據(jù)盡可能地打散,可以使同時受同步于工頻的周期噪聲影響的數(shù)據(jù)分散開,從而可以有效提高對抗同步于工頻的周期噪聲的性能。下面通過實際舉例,對本發(fā)明上述實施例中提供的rs編碼加字節(jié)交織方法進行說明。在執(zhí)行本發(fā)明上述實施例中提供的rs編碼加字節(jié)交織方法之前,可以先預(yù)先設(shè)置rs編碼過程中所使用的參數(shù),具體的rs編碼參數(shù)可以根據(jù)實際需要進行設(shè)定。本發(fā)明實施例中設(shè)置的參數(shù)可以參照表1,此處不做贅述。在準備好rs編碼過程中使用的參數(shù)后,可以獲取待編碼數(shù)據(jù)的字節(jié)數(shù)。獲取到的待編碼數(shù)據(jù)的字節(jié)數(shù)l=82,根據(jù)表1中配置的rs編碼參數(shù),可以得知適用的最大的k值為kmax=36。根據(jù)公式m1=ceil(l/kmax)計算得到第一交織器的行數(shù)m1=3,第一交織器的信息區(qū)的最后一行的字節(jié)數(shù)為r=10。采用第一交織器進行第一類交織,將前r×m1=30個字節(jié)從第一列開始按 從上向下的順序開始填充,然后是第二列,以此類推,直到第一交織器的第10列填滿為止,前10列每列填充m1=3個字節(jié)。剩下的52個字節(jié)從第11列開始按從上向下的順序開始填充,每列填充2個字節(jié),直到第36列完成填充。填充完成后,數(shù)據(jù)分布如表2所示。147……283133……81258……293234……82369……30表2表2中的數(shù)字代表輸入到第一交織器中的字節(jié)序號,例如,1代表第一個字節(jié)。將待編碼數(shù)據(jù)輸入到第一交織器之后,按行對其進行rs編碼,對前兩行采用rs(n=48,k=36)的編碼方式進行編碼,生成12個校驗碼元,放置在第一交織器的校驗區(qū),第一行的12個校驗碼元依次為r1,1、r1,2、……、r1,12,第二行的12個校驗碼元依次為r2,1、r2,2、……、r2,12。由于第3行中只有10個有效數(shù)據(jù),因此對第3行采用rs(n=16,k=12)的編碼方式進行編碼。由于r=10<12,所以需要補充兩個零字節(jié),生成4個校驗碼元并放置在填充的零字節(jié)后面,第3行的4個校驗碼元依次為r3,1、r3,2、r3,3、r3,4。經(jīng)過rs編碼后的數(shù)據(jù)分布情況可以參照表3。1…28313335…41…81r1,1…r1,122…29323436…42…82r2,1…r2,123…3000r3,1…r3,4表3經(jīng)過rs編碼之后,將得到的rs編碼結(jié)果按列輸出,rs編碼結(jié)果包括填充的0以及生成的校驗碼元,輸出的數(shù)據(jù)的順序為1,2,3,4,……,31,32,0,33,34,0,35,36,r3,1,……,42,r3,4,43,……,81,82,r1,1,r2,1,……,r1,12,r2,12。將輸出的rs編碼結(jié)果輸入至第二交織器,以對rs編碼結(jié)果進行第二類 交織。第二交織器的行數(shù)m2=ceil((fs/(ft×2))/8)-1,其中:fs為采樣頻率,ft為工頻頻率,ceil((fs/(ft×2))/8)為取大于(fs/(ft×2))/8的最小整數(shù)值。在實際應(yīng)用中,電力線信道的工頻ft=50hz,則同步于工頻的噪聲的周期為1/50s,設(shè)定采樣頻率為5.6khz,則在一個噪聲周期范圍內(nèi)的碼元個數(shù)為m=ceil(5.6×1000/(50×2)/8)=7,即每個噪聲周期范圍內(nèi)的傳輸碼元個數(shù)約為7個,也就是說,傳輸碼元受同步于工頻的周期噪聲的干擾間隔為6,因此,設(shè)定第二交織器的行數(shù)m2=7-1=6。rs編碼結(jié)果中總的字節(jié)數(shù)為82+2+24+4=112,因此第二交織器的列數(shù)為112/6。由于112/6為非整數(shù),可以取大于112/6的最小整數(shù),即第二交織器的列數(shù)為ceil(112/6)=19。最后一列未被rs編碼結(jié)果占用的區(qū)域用零字節(jié)填充。將rs編碼結(jié)果按列從上向下依次填充到第二交織器,得到的數(shù)據(jù)分布情況(也即得到的數(shù)據(jù)列表)可以參照表4。17…3135…79r1,2…r1,1128…3236…80r2,2…r2,1139…0r3,1…81r1,3…r1,12410…3337…82r2,3…r2,12511…3438…r1,1r1,4…0612…0r3,2…r2,1r2,4…0表4對數(shù)據(jù)列表中的數(shù)據(jù)按列進行循環(huán)移位操作,將奇數(shù)列從上向下移位,將偶數(shù)列從下向上移位,第i列進行循環(huán)移位的操作位數(shù)z=mod(i-1,m2)。第一列進行循環(huán)移位的操作位數(shù)z=0,則第一列可以保持不變。第二列進行循環(huán)移位的操作位數(shù)z=1,且第二列為從下向上移位,則移位后第二列的數(shù)值從上向下依次為:8、9、10、11、12、7。第三列進行循環(huán)移位的操作位數(shù)z=2,且第三列為從上向下移位,移位后的第三列的數(shù)值從上向下依次為:17、18、13、14、15、16。以此類推,完成循環(huán)移位操作。在完成循環(huán)移位操作后,即可將循環(huán)移位操作得到的結(jié)果按列輸出,得到第二交織結(jié)果。參照圖3,給出了在相同仿真環(huán)境下,采用本發(fā)明上述實施例中提供的rs編碼加字節(jié)交織方法的與現(xiàn)有的rs編碼交織方法的性能比較圖。圖3中,仿真環(huán)境參數(shù)設(shè)置為:調(diào)制方式為二進制相移鍵控(binaryphaseshiftkeying,bpsk),待編碼數(shù)據(jù)的字節(jié)數(shù)為200個,仿真次數(shù)為1000次,噪聲模型為同步于工頻的周期噪聲。橫坐標為信噪比,縱坐標為誤碼率。曲線301為現(xiàn)有的rs編碼加字節(jié)交織方法的性能曲線,曲線302為本發(fā)明實施例中的rs編碼加字節(jié)交織方法的性能曲線。從圖3中可以得知,若要實現(xiàn)誤碼率為10-3,則現(xiàn)有的rs編碼加字節(jié)交織方法需要的信噪比為2.25db左右,而本發(fā)明實施例中提供的rs編碼加字節(jié)交織方法需要的信噪比僅為1.5db左右,二者相差0.75db。也即相比于現(xiàn)有技術(shù),采用本發(fā)明實施例中提供的rs編碼加字節(jié)交織方法可以使得系統(tǒng)抗同步于工頻的噪聲性能提高0.75db左右。參照圖4,給出了本發(fā)明實施例中的一種rs編碼加字節(jié)交織系統(tǒng)40,包括:第一交織器401、rs編碼器402、第二交織器403以及輸出單元404,其中:第一交織器401,適于接收輸入的待編碼數(shù)據(jù),并根據(jù)所述待編碼數(shù)據(jù)的字節(jié)數(shù)以及預(yù)設(shè)的rs編碼參數(shù)對所述待編碼數(shù)據(jù)進行第一類交織;rs編碼器402,適于接收所述第一交織器401生成的第一交織結(jié)果,并對所述第一交織結(jié)果按行進行rs編碼;第二交織器403,適于對所述rs編碼器402按列輸出的rs編碼結(jié)果按列從上向下依次排列形成數(shù)據(jù)列表;將所述數(shù)據(jù)列表按列進行循環(huán)移位操作;其中,所述數(shù)據(jù)列表行數(shù)為m2,m2=n-1,n為一個同步于工頻的噪聲周期內(nèi)的傳輸碼元的個數(shù);所述數(shù)據(jù)列表列數(shù)為所述rs編碼結(jié)果的總字節(jié)長度與m2之商向上取整;所述數(shù)據(jù)列表中的每一列均存在一一對應(yīng)的所述循環(huán)移位操作的操作位數(shù),且奇數(shù)列與偶數(shù)列循環(huán)移位的方向不同;輸出單元404,適于將所述循環(huán)移位操作得到的結(jié)果按列輸出,得到第二 交織結(jié)果。在具體實施中,所述第二交織器403適于對所述數(shù)據(jù)列表中的第i列進行操作位數(shù)z=mod(i-1,m2)的循環(huán)移位操作。在具體實施中,所述第一交織器401得到的第一交織結(jié)果的行數(shù)m1=ceil(l/kmax),且前m1-1行的第1~kmax列均被有效數(shù)據(jù)填滿,其中,l為輸入的待編碼數(shù)據(jù)的字節(jié)數(shù),kmax為rs編碼參數(shù)中的最大k值,ceil(l/kmax)為取大于l/kmax的最小整數(shù)值。在具體實施中,所述第一交織器401可以適于:將所述輸入的待編碼數(shù)據(jù)的前r×m1個字節(jié)按列從上向下依次寫入至所述第一交織器,每列填充m1個字節(jié);剩余的l-r×m1個字節(jié)從第r+1行按列從上向下依次寫入至所述第一交織器,每列填充m1-1個字節(jié),直至所述第一交織器的第kmax列填滿;其中,r為最后一行的字節(jié)數(shù),且r=l-kmax×(m1-1)。在具體實施中,所述rs編碼器402可以適于對所述第一交織結(jié)果按行進行編碼,其中:將所述前m1-1行中的字節(jié)采用所述kmax對應(yīng)的rs編碼參數(shù)進行編碼,將最后一行中的字節(jié)采用大于r的最小k值對應(yīng)的rs編碼參數(shù)進行編碼。在具體實施中,所述第二交織器403適于采用公式m2=ceil((fs/(ft×2))/8)-1計算得到m2,其中:fs為采樣頻率,ft為工頻頻率,ceil((fs/(ft×2))/8)為取大于(fs/(ft×2))/8的最小整數(shù)值。在具體實施中,所述rs編碼加字節(jié)交織系統(tǒng)的具體工作原理以及工作流程可以參照本發(fā)明上述實施例中提供的rs編碼加字節(jié)交織方法,此處不做贅述。雖然本發(fā)明披露如上,但本發(fā)明并非限定于此。任何本領(lǐng)域技術(shù)人員,在不脫離本發(fā)明的精神和范圍內(nèi),均可作各種更動與修改,因此本發(fā)明的保護范圍應(yīng)當(dāng)以權(quán)利要求所限定的范圍為準。當(dāng)前第1頁12