一種基于音頻通訊中的音頻解碼方法及其裝置制造方法
【專利摘要】本發(fā)明提供一種基于音頻通訊中的音頻解碼方法及裝置,方法包括:S100:接收端接收發(fā)送端發(fā)送過來的原始編碼波形;S200:接收端對原始編碼波形進(jìn)行濾波處理得到第一編碼波形;S300:計(jì)算第一編碼波形,得到脈寬序列;S400:將所述脈寬序列轉(zhuǎn)換為二進(jìn)制序列,在轉(zhuǎn)換出錯時使用模糊邏輯進(jìn)行糾錯;S500:將所述二進(jìn)制序列根據(jù)編碼規(guī)范轉(zhuǎn)換為編碼結(jié)果。接收原始編碼波形后依次進(jìn)行濾波、計(jì)算得到脈寬值、轉(zhuǎn)換為二進(jìn)制序列和轉(zhuǎn)為編碼結(jié)果過程,同時解決解碼過程中經(jīng)常出現(xiàn)的噪音影響大、波特率不適應(yīng)、脈寬轉(zhuǎn)換出錯等問題。
【專利說明】一種基于音頻通訊中的音頻解碼方法及其裝置
【技術(shù)領(lǐng)域】
[0001]本發(fā)明涉及音頻波形的編解碼領(lǐng)域,具體說的是一種基于音頻通訊中的音頻解碼方法及其裝置。
【背景技術(shù)】
[0002]目前的手機(jī)或平板電腦之間的音頻通訊大多采用左(右)聲道將編碼的波形發(fā)往設(shè)備;接收端通過麥克風(fēng)接收設(shè)備發(fā)送過來的編碼后進(jìn)行解碼的方式來實(shí)現(xiàn)。具體的,手機(jī)通過麥克風(fēng)接收到的是一段離散波形數(shù)據(jù),波形數(shù)據(jù)可能使用F2F或其他類型的編碼,通過假設(shè)已知當(dāng)前接收波特率,然后按順序取出波形中的點(diǎn),統(tǒng)計(jì)高于高閾值和低于高閾值之間的點(diǎn)數(shù),然后統(tǒng)計(jì)低于低閾值和高于低閾值之間點(diǎn)數(shù),如此反復(fù),將波形數(shù)據(jù)劃分成一個個脈寬;將脈寬與參考脈寬比較可將其轉(zhuǎn)換成01邏輯,繼而根據(jù)編碼規(guī)范計(jì)算出編碼結(jié)果;設(shè)備通過比較器和捕獲定時器接收左(右)聲道的數(shù)據(jù),每來一個脈寬,設(shè)備便產(chǎn)生一次中斷,設(shè)備將脈寬與基準(zhǔn)脈寬比較從而轉(zhuǎn)換成01邏輯,繼而根據(jù)編碼規(guī)范得出編碼結(jié)果O
[0003]但是,采用上述方式進(jìn)行音頻通訊,存在以下缺點(diǎn):
[0004]1、市場上的手機(jī)數(shù)量和品種眾多,不同手機(jī)應(yīng)用的音頻方案可能有很大差別,同樣的輸入波形錄制結(jié)果差很多,簡單地統(tǒng)計(jì)過閾值的點(diǎn)需要手動調(diào)整閾值,效率低,誤差大。
[0005]2、有的手機(jī)需要使用不同的波特率,統(tǒng)計(jì)點(diǎn)數(shù)來區(qū)分01邏輯僅適用于特定波特率,當(dāng)與設(shè)備必須以不同波特率才能通信時便必須修改程序,靈活性很低。
[0006]3、存在較強(qiáng)的噪聲時,可能導(dǎo)致波形變形較厲害,很難取一個固定的閾值,噪聲強(qiáng)度與實(shí)際數(shù)據(jù)可能很接近,如果出現(xiàn)串?dāng)_,可能手機(jī)發(fā)送的數(shù)據(jù)都會混入麥克風(fēng)中,現(xiàn)有方法在抗噪方面比較弱。
[0007]4、實(shí)際得到的脈寬可能過短或過長導(dǎo)致邏輯轉(zhuǎn)換出錯,無法根據(jù)脈寬間的關(guān)系糾錯O
[0008]因此,有必要提供一種能夠很好解決上述問題的音頻解碼方法及裝置。
【發(fā)明內(nèi)容】
[0009]本發(fā)明所要解決的技術(shù)問題是:提供一種基于音頻通訊中的音頻解碼方法及裝置,解決音頻解碼過程中經(jīng)常出現(xiàn)的波形錄制差距大、波特率不適應(yīng)、噪音干擾和脈寬轉(zhuǎn)換出錯等問題。
[0010]為了解決上述技術(shù)問題,本發(fā)明采用的技術(shù)方案為:
[0011 ] 一種基于音頻通訊中的音頻解碼方法,包括:
[0012]SlOO:接收端接收發(fā)送端發(fā)送過來的原始編碼波形;
[0013]S200:接收端對原始編碼波形進(jìn)行濾波處理得到第一編碼波形;
[0014]S300:計(jì)算第一編碼波形,得到脈寬序列;
[0015]S400:將所述脈寬序列轉(zhuǎn)換為二進(jìn)制序列,在轉(zhuǎn)換出錯時使用模糊邏輯進(jìn)行糾錯;
[0016]S500:將所述二進(jìn)制序列根據(jù)編碼規(guī)范轉(zhuǎn)換為編碼結(jié)果;
[0017]S300 包括:
[0018]S301:以零點(diǎn)線為界將所述第一編碼波形分為上下區(qū)域,取上區(qū)域中最臨近零點(diǎn)線的X數(shù)據(jù)點(diǎn),下區(qū)域中最臨近零點(diǎn)線的Y數(shù)據(jù)點(diǎn);
[0019]S302:對所述X數(shù)據(jù)點(diǎn)和Y數(shù)據(jù)點(diǎn)采用線性插值法計(jì)算得到過零點(diǎn)值;
[0020]S303:計(jì)算相鄰兩個過零點(diǎn)值,得到脈寬。
[0021]本發(fā)明提供的另一個技術(shù)方案為:
[0022]一種基于音頻通訊中的音頻解碼裝置,運(yùn)用于接收端和發(fā)送端之間的音頻通訊連接,包括接收模塊、濾波模塊、計(jì)算模塊、第一轉(zhuǎn)換模塊和第二轉(zhuǎn)換模塊;
[0023]所述接收模塊,用于接收端接收發(fā)送端發(fā)送過來的原始編碼波形;
[0024]所述濾波模塊,用于接收端對原始編碼波形進(jìn)行濾波處理得到第一編碼波形;
[0025]所述計(jì)算模塊,用于計(jì)算第一編碼波形,得到一系列脈寬值;
[0026]所述第一轉(zhuǎn)換模塊,用于將所述脈寬值轉(zhuǎn)換為二進(jìn)制序列,在轉(zhuǎn)換出錯時使用模糊邏輯進(jìn)行糾錯;
[0027]所述第二轉(zhuǎn)換模塊,用于將所述二進(jìn)制序列根據(jù)編碼規(guī)范轉(zhuǎn)換為編碼結(jié)果;
[0028]所述計(jì)算模塊包括選取單元、線性插值計(jì)算單元和計(jì)算單元;
[0029]所述選取單元,用于以零點(diǎn)線為界將所述第一編碼波形分為上下區(qū)域,取上區(qū)域中最接近零點(diǎn)線的X數(shù)據(jù)點(diǎn),下區(qū)域中最接近零點(diǎn)線的Y數(shù)據(jù)點(diǎn);
[0030]所述線性插值計(jì)算單元,用于對所述X數(shù)據(jù)點(diǎn)和Y數(shù)據(jù)點(diǎn)采用線性插值法計(jì)算得到過零點(diǎn)值;
[0031]所述計(jì)算單元,用于計(jì)算相鄰兩個過零點(diǎn)值,得到脈寬。
[0032]本發(fā)明的有益效果在于:本發(fā)明區(qū)別于現(xiàn)有技術(shù)的基于音頻通訊中的音頻解碼方法及裝置存在的波形錄制差距大、波特率不適應(yīng)、噪音干擾和脈寬轉(zhuǎn)換出錯等問題。本發(fā)明提供一種基于音頻通訊中的音頻解碼方法及裝置,通過先對離散的原始編碼波形進(jìn)行濾波,使濾波后的波形更接近實(shí)際的輸入波形,從而降低噪音的影響;通過對第一編碼波形的計(jì)算得到準(zhǔn)確的脈寬值,一方面,由于準(zhǔn)確的脈寬將比默認(rèn)設(shè)置的高低閥值更加的準(zhǔn)確,因此后續(xù)無需再手動調(diào)整閥值,減少誤差,同時顯著提高音頻的解碼效率;另一方面,得到準(zhǔn)確的脈寬值后使后續(xù)計(jì)算得到基準(zhǔn)脈寬變得可行,從而實(shí)現(xiàn)接收端和發(fā)送端在音頻解碼過程能夠自適應(yīng)波特率,而不再受通信對端需要特定波特率的限制;最后,通過在脈寬值轉(zhuǎn)換的過程中,通過模糊邏輯進(jìn)行智能糾錯,能夠很好的根據(jù)實(shí)際脈寬間的關(guān)系進(jìn)行糾錯,保證轉(zhuǎn)換過程中的正確率。本發(fā)明提供的一種音頻解碼方法及裝置,同時解決了解碼過程中經(jīng)常出現(xiàn)的噪音影響大、波特率不適應(yīng)、脈寬轉(zhuǎn)換出錯等問題,通訊雙方不再受波特率不適應(yīng)問題而導(dǎo)致無法正常通訊,大大提高音頻解碼結(jié)果的準(zhǔn)確率及其解碼效率。
【專利附圖】
【附圖說明】
[0033]圖1為本發(fā)明一種基于音頻通訊中的音頻解碼方法的基本流程框圖;
[0034]圖2為本發(fā)明一種基于音頻通訊中的音頻解碼方法的流程框圖;
[0035]圖3為本發(fā)明一種基于音頻通訊中的音頻解碼裝置的基本結(jié)構(gòu)組成方框圖;
[0036]圖4為本發(fā)明一種基于音頻通訊中的音頻解碼裝置的結(jié)構(gòu)組成方框圖;
[0037]圖5為設(shè)備與智能終端之間的硬件組成示意圖;
[0038]圖6為本發(fā)明接收端接收到的一種原始編碼波形片段樣本I ;
[0039]圖7為本發(fā)明接收端接收到的一種原始編碼波形片段樣本2 ;
[0040]圖8為本發(fā)明原始編碼波形片段樣本I濾波后的結(jié)果;
[0041]圖9為本發(fā)明原始編碼波形片段樣本2濾波后的結(jié)果;
[0042]圖10為本發(fā)明第一編碼波形片段;
[0043]圖11為本發(fā)明中采用線性插值法的示意圖;
[0044]圖12為本發(fā)明一種基于音頻通訊中的音頻解碼方法中兩個短脈寬均被誤判為長脈寬的波形片段;
[0045]圖13為本發(fā)明一種基于音頻通訊中的音頻解碼方法中采用模糊糾錯將LSL轉(zhuǎn)換為LSS的波形片段;
[0046]圖14為本發(fā)明一具體實(shí)施例處理后的數(shù)據(jù)對比波形圖。
[0047]標(biāo)號說明:
[0048]3、接收模塊;4、濾波模塊;5、計(jì)算模塊;
[0049]6、第一轉(zhuǎn)換模塊;7、第二轉(zhuǎn)換模塊;8、選取單元;
[0050]9、線性插值計(jì)算單元;10、計(jì)算單元;11、第一確定單元;
[0051]12、第二確定單元;13、模糊邏輯糾錯單元;14、轉(zhuǎn)換單元。
【具體實(shí)施方式】
[0052]為詳細(xì)說明本發(fā)明的技術(shù)內(nèi)容、所實(shí)現(xiàn)目的及效果,以下結(jié)合實(shí)施方式并配合附圖予以說明。
[0053]本發(fā)明最關(guān)鍵的構(gòu)思在于:接收原始編碼波形后依次進(jìn)行濾波、計(jì)算得到脈寬值、轉(zhuǎn)換為二進(jìn)制序列和轉(zhuǎn)為為編碼結(jié)果過程,同時解決解碼過程中經(jīng)常出現(xiàn)的噪音影響大、波特率不適應(yīng)、脈寬轉(zhuǎn)換出錯等問題。
[0054]請參照圖1至圖14,本發(fā)明提供一種基于音頻通訊中的音頻解碼方法,包括:
[0055]SlOO:接收端接收發(fā)送端發(fā)送過來的原始編碼波形;
[0056]S200:接收端對原始編碼波形進(jìn)行濾波處理得到第一編碼波形;
[0057]S300:計(jì)算第一編碼波形,得到脈寬序列;
[0058]S400:將所述脈寬序列轉(zhuǎn)換為二進(jìn)制序列,在轉(zhuǎn)換出錯時使用模糊邏輯進(jìn)行糾錯;
[0059]S500:將所述二進(jìn)制序列根據(jù)編碼規(guī)范轉(zhuǎn)換為編碼結(jié)果;
[0060]S300 包括:
[0061]S301:以零點(diǎn)線為界將所述第一編碼波形分為上下區(qū)域,取上區(qū)域中最臨近零點(diǎn)線的X數(shù)據(jù)點(diǎn),下區(qū)域中最臨近零點(diǎn)線的Y數(shù)據(jù)點(diǎn);
[0062]S302:對所述X數(shù)據(jù)點(diǎn)和Y數(shù)據(jù)點(diǎn)采用線性插值法計(jì)算得到過零點(diǎn)值;
[0063]S303:計(jì)算相鄰兩個過零點(diǎn)值,得到脈寬。
[0064]需要說明的是,接收到的原始編碼波形在濾波處理后可以很好的改善波形,有助于后續(xù)的處理,因此,先對原始編碼波形進(jìn)行濾波處理。
[0065]經(jīng)過濾波處理后得到的第一編碼波形仍然是一些離散數(shù)據(jù),通常數(shù)據(jù)點(diǎn)是不會剛好落在零點(diǎn)線上的,如圖10所示,中間線為零點(diǎn)線,實(shí)心點(diǎn)為實(shí)際存儲的數(shù)據(jù),為了能夠計(jì)算得到脈寬值,需要先對離散的第一編碼波形進(jìn)行計(jì)算,找到過零點(diǎn),而后得到脈寬。在準(zhǔn)確的將第一編碼波形轉(zhuǎn)換為脈寬序列后,需要將脈寬值優(yōu)選根據(jù)F2F的編碼方式,每個脈寬值要么被轉(zhuǎn)換成邏輯0,要么和下一個脈寬轉(zhuǎn)換成邏輯1,全部轉(zhuǎn)換為二進(jìn)制序列。并在轉(zhuǎn)換出現(xiàn)錯誤時使用模糊邏輯方法進(jìn)行糾錯,提高轉(zhuǎn)換的正確率。最后,將二進(jìn)制序列按照編碼規(guī)則轉(zhuǎn)換為字符,得到編碼結(jié)果。
[0066]如圖10所示,為濾波后的第一編碼波形,從圖中可知,波形數(shù)據(jù)是一些離散數(shù)據(jù),通常數(shù)據(jù)點(diǎn)都不會剛好落在零點(diǎn)線上,因此,需要先對離散的數(shù)據(jù)進(jìn)行插值計(jì)算,找到過零點(diǎn)的值。具體的,可知實(shí)際的零點(diǎn)值在圖中圓弧圈位置內(nèi)的兩個數(shù)據(jù)點(diǎn)之間,而根據(jù)麥克風(fēng)的采樣率是固定的,因此每個數(shù)據(jù)點(diǎn)之間的間隔是固定的,設(shè)為T,而圓弧圈內(nèi)的上下的兩個數(shù)據(jù)點(diǎn)分別為yl,y2,可根據(jù)to = yl/(yl-y2)*T,具體參閱圖11,可計(jì)算得到零點(diǎn)離前一個數(shù)據(jù)點(diǎn)的距離t0,結(jié)合圖10可知,脈寬A包含了 t0部分,而脈寬B包含了 T-tO部分,通過該方法,便能準(zhǔn)確的將第一編碼波形轉(zhuǎn)換為脈寬序列。
[0067]從上述描述可知,本發(fā)明的有益效果在于:本發(fā)明提供一種基于音頻通訊中的音頻解碼方法,通過先對離散的原始編碼波形進(jìn)行濾波,使濾波后的波形更接近實(shí)際的輸入波形,從而降低噪音的影響;通過對第一編碼波形的計(jì)算得到準(zhǔn)確的脈寬值,一方面,由于準(zhǔn)確的脈寬將比默認(rèn)設(shè)置的高低閥值更加的準(zhǔn)確,因此后續(xù)無需再手動調(diào)整閥值,減少誤差,同時顯著提高音頻的解碼效率;另一方面,得到準(zhǔn)確的脈寬值后使后續(xù)計(jì)算得到基準(zhǔn)脈寬變得可行,從而實(shí)現(xiàn)接收端和發(fā)送端在音頻解碼過程能夠自適應(yīng)波特率,而不再受通信對端需要特定波特率的限制;最后,通過在脈寬值轉(zhuǎn)換的過程中,通過模糊邏輯進(jìn)行智能糾錯,能夠很好的根據(jù)實(shí)際脈寬間的關(guān)系進(jìn)行糾錯,保證轉(zhuǎn)換過程中的正確率。本發(fā)明提供的一種音頻解碼方法,同時解決了解碼過程中經(jīng)常出現(xiàn)的噪音影響大、波特率不適應(yīng)、脈寬轉(zhuǎn)換出錯等問題,通訊雙方不再受波特率不適應(yīng)問題而導(dǎo)致無法正常通訊,大大提高音頻解碼結(jié)果的準(zhǔn)確率及其解碼效率。
[0068]進(jìn)一步的,步驟S200中接收端對原始編碼波形采用自適應(yīng)濾波方式進(jìn)行濾波處理。
[0069]由上述描述可知,對原始編碼波形采用自適應(yīng)濾波方式進(jìn)行處理,是基于取均值、加權(quán)平均等簡單方法會降低正常波形的質(zhì)量,而對于變形的波形,如果偏離正常點(diǎn)太大也無法正常濾波,因此必須采用自適應(yīng)濾波方法,優(yōu)選的,使用最小二乘法濾波,圖6為樣本I的原始波形片段、圖7為樣本2的原始波形片段,在進(jìn)行自適應(yīng)濾波方法進(jìn)行濾波處理后,分別得到對應(yīng)的圖8和圖9結(jié)果。
[0070]進(jìn)一步的,步驟S400包括:
[0071]S401:按照發(fā)送端的編碼方式取所述脈寬序列中的前導(dǎo)脈寬部分,從所述前導(dǎo)脈寬中確定出基準(zhǔn)脈寬;
[0072]S402:將所述脈寬與所述基準(zhǔn)脈寬做比較,確定出脈寬的類型;
[0073]S403:依照脈寬的類型轉(zhuǎn)換為對應(yīng)的二進(jìn)制序列。
[0074]由上述可知,在將脈寬值根據(jù)編碼方式轉(zhuǎn)換為01序列時,分為兩個部分。第一部分為從根據(jù)發(fā)送端事先制定好的編碼方式選取脈寬值中的前導(dǎo)脈寬部分,并從前導(dǎo)脈寬部分中確定出基準(zhǔn)脈寬。優(yōu)選發(fā)送端發(fā)送過來的數(shù)據(jù)按照類型分為:前導(dǎo)短脈寬+實(shí)際數(shù)據(jù)+后導(dǎo)長脈寬,前導(dǎo)短脈寬的存在一方面是手機(jī)麥克經(jīng)常會衰減高頻信號,如果沒前導(dǎo)短脈寬的存在,實(shí)際數(shù)據(jù)可能被衰減導(dǎo)致解碼失敗;另一方面,為自適應(yīng)波特率,需要根據(jù)前導(dǎo)數(shù)據(jù)確定出基準(zhǔn)脈寬。具體地說,當(dāng)連續(xù)取出10幾個脈寬,它們的數(shù)值接近,認(rèn)為是找到了基準(zhǔn)脈寬,后面的脈寬應(yīng)與該基準(zhǔn)脈寬作比較。實(shí)際上,很多手機(jī)的噪聲比較強(qiáng),被錯誤地認(rèn)為是脈寬,并且從中也可以取出連續(xù)10個數(shù)值接近的脈寬。
[0075]第二部分,將確定出來的基準(zhǔn)脈寬與上一步驟中得出的所述脈寬進(jìn)行比較,確定出所述脈寬的類型,是長脈寬、短脈寬還是非脈寬等,并轉(zhuǎn)換為對應(yīng)的二進(jìn)制序列。優(yōu)選的,以F2F編碼方式為例,將脈寬分成長脈寬、短脈寬、毛刺、非脈寬四種類型,用L、S、P、N符號表示。假設(shè)基準(zhǔn)脈寬為B,當(dāng)脈寬與B相比在[0.675,1.35)為L、[0.2,0.675)為S、[0,0.2)為P、[1.35,+infite)為N,這里范圍值的設(shè)定只是一個舉例,實(shí)際上,該范圍的設(shè)定是比較隨意的,因?yàn)閷?shí)際上不可能找到一個完美的界限值區(qū)分一個脈寬的類型。在確定出脈寬的類型后,轉(zhuǎn)換為對應(yīng)的01序列,其中單個L轉(zhuǎn)換成邏輯0,2個連續(xù)的S轉(zhuǎn)換成邏輯I。
[0076]進(jìn)一步的,步驟S400還包括:
[0077]S404:設(shè)脈寬與基準(zhǔn)脈寬的比例為fac、長脈寬為L、短脈寬為S,則fac在(1.5,+①)時歸屬度為100 Y,在[0,1.2)時歸屬度為0,其他情況歸屬度為1-(1.5-fac)/0.3 ;
[0078]S405:脈寬轉(zhuǎn)換為二進(jìn)制序列出現(xiàn)錯誤時,采用模糊邏輯進(jìn)行糾錯,具體的:
[0079]當(dāng)兩個長脈寬LL相加后的脈寬長度與基準(zhǔn)脈寬的比例fac的歸屬度小于100Y時,將兩個長脈寬LL轉(zhuǎn)換成兩個短脈寬SS ;
[0080]當(dāng)出現(xiàn)LSL情況時,進(jìn)一步分析,當(dāng)前一個長脈寬L小于后一個長脈寬L,且前一個長脈寬L與短脈寬S相加的脈寬長度與基準(zhǔn)脈寬的比例fac的歸屬度在90 Y到100 Y之間,則轉(zhuǎn)為SSL ;當(dāng)前一個長脈寬L大于后一個長脈寬L,且后一個長脈寬L與短脈寬S相加后的脈寬長度與基準(zhǔn)脈寬的比例fac的歸屬度在90 Y到100 Y之間,則轉(zhuǎn)為LSS ;否則直接轉(zhuǎn)為LLL ;
[0081 ] 當(dāng)出現(xiàn)脈寬序列LSS (2m-1) SL共2m+l個S時,進(jìn)一步分析,當(dāng)前一個長脈寬L與第一個短脈寬S之和小于最后一個短脈寬S和最后一個長脈寬L之和,且第一個長脈寬L和第一個短脈寬S之和與基準(zhǔn)脈寬的比例的歸屬度在90 Y到100 Y之間,則轉(zhuǎn)為SSS(2m-l)SL ;否則轉(zhuǎn)為LLS(2m-l)SL ;當(dāng)前一個長脈寬L與第一個短脈寬之和大于或等會最后一個短脈寬S和后一個長脈寬L之和,且后一個長脈寬L和最后一個短脈寬S之和與基準(zhǔn)脈寬B的比例的歸屬度小于在90 Y到100 Y之間,則轉(zhuǎn)為LSS(2m-l)SS ;否則轉(zhuǎn)換成LSS(2m_l)LL。
[0082]由上述可知,在脈寬轉(zhuǎn)換為二進(jìn)制序列的過程中,很可能出現(xiàn)轉(zhuǎn)換錯誤,比如出現(xiàn)奇數(shù)個短脈寬,兩個短脈寬被誤判為長脈寬等情況,這時候,就需要采用模糊邏輯解決轉(zhuǎn)換錯誤的情況。具體的,轉(zhuǎn)換出錯的情況可分為3種:
[0083]1、兩個短脈寬均被誤判長脈寬,即將LL轉(zhuǎn)換成SS。
[0084]參閱圖12所示,正常情況下,兩個長脈寬相加的總長度與基準(zhǔn)脈寬B相比,脈寬的歸屬度正常應(yīng)接近100 Y,如果不是,說明這兩個長脈寬實(shí)際上很可能是兩個較長的短脈寬。因此如果當(dāng)歸屬度小于100 Y時,將LL轉(zhuǎn)換成SS。
[0085]2、出現(xiàn)單個短脈寬,即出現(xiàn)LSL的情況,實(shí)際上應(yīng)轉(zhuǎn)換為SSL、LSS或LLL任一種情況。
[0086]如圖13所示,具體轉(zhuǎn)換成哪種情況,需要對這3個脈寬分析,當(dāng)前一個L小于后一個L,且前一個L與S相加的總長度與B相比,非脈寬的歸屬度小于95 Y (90 Y到100 Y之間均可),就轉(zhuǎn)換成SSL ;否則當(dāng)前一個L大于后一個L,且后一個L與S相加總長度與B相比,脈寬歸屬度小于95 Y (90 Y到100 Y之間均可),就轉(zhuǎn)成LSS,否則轉(zhuǎn)換成LLL。圖11是一個將LSL轉(zhuǎn)換成LSS的例子。
[0087]3、出現(xiàn)奇數(shù)個(> = 3)連續(xù)短脈寬,即有脈寬序列LSS(2m-l)SL共2m+l個S,那么有 I 個 S 將無法配對,實(shí)際可能轉(zhuǎn)成 LSS (2m-1) SS,SSS (2m-1) SL,LLS (2m-1) SL 和 LSS (2m-1)LLo
[0088]如果前I個L與第I個S脈寬之和小于最后I個S和后I個L脈寬之和,則可能轉(zhuǎn)成SSS (2m-1) SL、LLS (2m-1) SL兩種情況。此時,如果第I個L和第I個S脈寬之和與B相比,脈寬歸屬度小于95 Y,認(rèn)為應(yīng)轉(zhuǎn)成SSS (2m-l) SL,否則轉(zhuǎn)換成LLS (2m-1) SL。
[0089]如果前I個L與第I個S脈寬之和大于等于最后I個S和后I個L脈寬之和,則可能轉(zhuǎn)成LSS (2m-1) SS,LSS (2m-1) LL兩種情況,此時,如果后I個L和最后I個S脈寬之和與B相比,非脈寬歸屬度小于95 Y,認(rèn)為應(yīng)轉(zhuǎn)成LSS (2m-l) SS,否則轉(zhuǎn)換成LSS (2m_l) LL。
[0090]需要說明的是,在將二進(jìn)制序列轉(zhuǎn)換為編碼字符的過程中,優(yōu)選每個字符用11位編碼,格式為:起始位(I位)+實(shí)際數(shù)據(jù)(8位)+偶校驗(yàn)(I位)+停止位(I位)。如果遇到錯誤,比如某個字符沒檢測到起始位或檢驗(yàn)位錯,或沒有停止位,則此次解碼失敗,對于解碼失敗的情況只能要求設(shè)備重傳。如果沒有出現(xiàn)錯誤,則此次解碼成功,流程結(jié)束。
[0091]而設(shè)備端的解碼過程又包括:設(shè)備端每次取得一個脈寬就處理,它實(shí)際上就只有接收端解碼的轉(zhuǎn)換為二進(jìn)制序列和將二進(jìn)制轉(zhuǎn)為編碼結(jié)果的步驟。處理方式有一點(diǎn)細(xì)微差另IJ外,其他均一樣。由于設(shè)備端在硬件上通過比較器輸出高低電平,本身過濾功能不強(qiáng),當(dāng)輸入信號有較抖動時,設(shè)備端可能接收到毛刺,因此設(shè)備端不能以毛刺P作為結(jié)束條件,相反,設(shè)備端以遇到N或者一定時間(比如15ms)內(nèi)無中斷作為結(jié)束條件(這是必須的,在正常情況下,有效數(shù)據(jù)如果結(jié)束了便不觸發(fā)中斷,則設(shè)備一直接收不到N而認(rèn)為未結(jié)束)。當(dāng)設(shè)備端接收到毛刺P時不能將其忽略,必須作一定處理。L、S、P三種脈寬的組合方式十分復(fù)雜,實(shí)際上沒必要枚舉所有情況,因?yàn)樵诖嬖诿蘌的情況下要從結(jié)果波形中推測中原始波形本身就不是很可行,因此這里只考慮最簡單的情況。在遇到毛刺P的情況下,將毛刺P與左右兩個脈寬合成一個。
[0092]進(jìn)一步的,在步驟SlOO中發(fā)送端發(fā)送過來的原始編碼波形中包括標(biāo)識字符。
[0093]優(yōu)選的,發(fā)送端發(fā)送過來的數(shù)據(jù)類型中還包括標(biāo)識字符,標(biāo)識字符又稱魔術(shù)字,即前導(dǎo)短脈寬+魔術(shù)字+實(shí)際數(shù)據(jù)+后導(dǎo)長脈寬;在噪音比較強(qiáng)烈的環(huán)境中,噪音很容易被錯誤的認(rèn)為是脈寬,并且從中也可以取出連續(xù)10個數(shù)值接近的脈寬。為從噪聲區(qū)別開來,在前導(dǎo)數(shù)據(jù)后面加入一個魔術(shù)字(比如(00001001)b),僅當(dāng)最先轉(zhuǎn)換成邏輯01的序列等于魔術(shù)字才認(rèn)為有實(shí)際數(shù)據(jù),否則便認(rèn)為這些脈寬是假數(shù)據(jù),從后一個脈寬重新嘗試計(jì)算基準(zhǔn)脈寬。找到魔術(shù)字后,將脈寬與基準(zhǔn)脈寬相比以轉(zhuǎn)換成01序列,只有長脈寬L和短脈寬S是正常的脈寬,當(dāng)遇到毛刺P或非脈寬N的脈寬,認(rèn)為轉(zhuǎn)換結(jié)束。在數(shù)據(jù)中插入魔術(shù)字,可以防止左/右聲道發(fā)送的數(shù)據(jù)串?dāng)_到MIC,被手機(jī)識別有有效信號。
[0094]本發(fā)明提供的另一個技術(shù)方案為:
[0095]一種基于音頻通訊中的音頻解碼裝置,運(yùn)用于接收端和發(fā)送端之間的音頻通訊連接,包括接收模塊3、濾波模塊4、計(jì)算模塊5、第一轉(zhuǎn)換模塊6和第二轉(zhuǎn)換模塊7 ;
[0096]所述接收模塊3,用于接收端接收發(fā)送端發(fā)送過來的原始編碼波形;
[0097]所述濾波模塊4,用于接收端對原始編碼波形進(jìn)行濾波處理得到第一編碼波形;
[0098]所述計(jì)算模塊5,用于計(jì)算第一編碼波形,得到脈寬序列;
[0099]所述第一轉(zhuǎn)換模塊6,用于將所述脈寬序列轉(zhuǎn)換為二進(jìn)制序列,在轉(zhuǎn)換出錯時使用模糊邏輯進(jìn)行糾錯;
[0100]所述第二轉(zhuǎn)換模塊7,用于將所述二進(jìn)制序列根據(jù)編碼規(guī)范轉(zhuǎn)換為編碼結(jié)果;
[0101]所述計(jì)算模塊5包括選取單元8、線性插值計(jì)算單元9和計(jì)算單元10 ;
[0102]所述選取單元8,用于以零點(diǎn)線為界將所述第一編碼波形分為上下區(qū)域,取上區(qū)域中最接近零點(diǎn)線的X數(shù)據(jù)點(diǎn),下區(qū)域中最接近零點(diǎn)線的Y數(shù)據(jù)點(diǎn);
[0103]所述線性插值計(jì)算單元9,用于對所述X數(shù)據(jù)點(diǎn)和Y數(shù)據(jù)點(diǎn)采用線性插值法計(jì)算得到過零點(diǎn)值;
[0104]所述計(jì)算單元10,用于計(jì)算相鄰兩個過零點(diǎn)值,得到脈寬。
[0105]從上述描述可知,本發(fā)明的有益效果在于:本發(fā)明提供一種基于音頻通訊中的音頻解碼裝置,通過濾波模塊4先對離散的原始編碼波形進(jìn)行濾波,使濾波后的波形更接近實(shí)際的輸入波形,從而降低噪音的影響;通過計(jì)算模塊5第一編碼波形的計(jì)算得到準(zhǔn)確的脈寬值,一方面,由于準(zhǔn)確的脈寬將比默認(rèn)設(shè)置的高低閥值更加的準(zhǔn)確,因此后續(xù)無需再手動調(diào)整閥值,減少誤差,同時顯著提高音頻的解碼效率;另一方面,得到準(zhǔn)確的脈寬值后使后續(xù)計(jì)算得到基準(zhǔn)脈寬變得可行,從而實(shí)現(xiàn)接收端和發(fā)送端在音頻解碼過程能夠自適應(yīng)波特率,而不再受通信對端需要特定波特率的限制;最后,通過第一轉(zhuǎn)換模塊6在脈寬值轉(zhuǎn)換的過程中,通過模糊邏輯進(jìn)行智能糾錯,能夠很好的根據(jù)實(shí)際脈寬間的關(guān)系進(jìn)行糾錯,保證轉(zhuǎn)換過程中的正確率。本發(fā)明提供的一種基于音頻通訊中的音頻解碼裝置,同時解決了解碼過程中經(jīng)常出現(xiàn)的噪音影響大、波特率不適應(yīng)、脈寬轉(zhuǎn)換出錯等問題,通訊雙方不再受波特率不適應(yīng)問題而導(dǎo)致無法正常通訊,大大提高音頻解碼結(jié)果的準(zhǔn)確率及其解碼效率。
[0106]進(jìn)一步的,所述濾波模塊4為自適應(yīng)濾波器。
[0107]進(jìn)一步的,所述第一轉(zhuǎn)換模塊6包括第一確定單元11、第二確定單元12、模糊邏輯糾錯單元13和轉(zhuǎn)換單元14 ;
[0108]所述第一確定單元11,用于按照發(fā)送端的編碼方式取所述脈寬序列中的前導(dǎo)脈寬部分,從所述前導(dǎo)脈寬中確定出基準(zhǔn)脈寬;
[0109]所述第二確定單元12,用于將所述脈寬與所述基準(zhǔn)脈寬做比較,確定出脈寬的類型;
[0110]所述模糊邏輯糾錯單元13,用于脈寬轉(zhuǎn)換為二進(jìn)制序列出現(xiàn)錯誤時,采用模糊邏輯進(jìn)行糾錯;
[0111]所述轉(zhuǎn)換單元14,用于依照脈寬的類型轉(zhuǎn)換為對應(yīng)的二進(jìn)制序列。
[0112]請參照圖14,本發(fā)明的實(shí)施例一為:
[0113]SlOl:設(shè)備接收左(右)聲道發(fā)送的數(shù)據(jù),并將數(shù)據(jù)發(fā)向麥克風(fēng);
[0114]設(shè)備接收到左聲道發(fā)送的數(shù)據(jù),經(jīng)解碼后為字符OxOf。將該字符編碼后再發(fā)向麥克風(fēng)。
[0115]S102:手機(jī)(平板電腦等)通過左(右)聲道往設(shè)備發(fā)送數(shù)據(jù),通過麥克風(fēng)接收設(shè)備發(fā)送過來的數(shù)據(jù)。
[0116]綜上所述,本發(fā)明提供的一種基于音頻通訊中的音頻解碼方法及裝置,不僅提高抗噪能力;而且能夠得到準(zhǔn)確的脈寬,實(shí)現(xiàn)設(shè)備之間自適應(yīng)波特率,同時無需再手動調(diào)整閥值,顯著提高音頻解碼效率;進(jìn)一步,能夠脈寬轉(zhuǎn)換出錯時采用模糊邏輯糾錯,進(jìn)一步的提高音頻解碼結(jié)果的準(zhǔn)確性。
[0117]以上所述僅為本發(fā)明的實(shí)施例,并非因此限制本發(fā)明的專利范圍,凡是利用本發(fā)明說明書及附圖內(nèi)容所作的等同變換,或直接或間接運(yùn)用在相關(guān)的【技術(shù)領(lǐng)域】,均同理包括在本發(fā)明的專利保護(hù)范圍內(nèi)。
【權(quán)利要求】
1.一種基于音頻通訊中的音頻解碼方法,其特征在于,包括: S100:接收端接收發(fā)送端發(fā)送過來的原始編碼波形; S200:接收端對原始編碼波形進(jìn)行濾波處理得到第一編碼波形; 5300:計(jì)算第一編碼波形,得到脈寬序列; 5400:將所述脈寬序列轉(zhuǎn)換為二進(jìn)制序列,在轉(zhuǎn)換出錯時使用模糊邏輯進(jìn)行糾錯; S500:將所述二進(jìn)制序列根據(jù)編碼規(guī)范轉(zhuǎn)換為編碼結(jié)果; S300包括: 5301:以零點(diǎn)線為界將所述第一編碼波形分為上下區(qū)域,取上區(qū)域中最臨近零點(diǎn)線的X數(shù)據(jù)點(diǎn),下區(qū)域中最臨近零點(diǎn)線的Y數(shù)據(jù)點(diǎn); 5302:對所述X數(shù)據(jù)點(diǎn)和Y數(shù)據(jù)點(diǎn)采用線性插值法計(jì)算得到過零點(diǎn)值; 5303:計(jì)算相鄰兩個過零點(diǎn)值,得到脈寬。
2.根據(jù)權(quán)利要求1所述的一種基于音頻通訊中的音頻解碼方法,其特征在于,步驟S200中接收端對原始編碼波形采用自適應(yīng)濾波方式進(jìn)行濾波處理。
3.根據(jù)權(quán)利要求1所述的一種基于音頻通訊中的音頻解碼方法,其特征在于,步驟S400包括: 5401:按照發(fā)送端的編碼方式取所述脈寬序列中的前導(dǎo)脈寬部分,從所述前導(dǎo)脈寬中確定出基準(zhǔn)脈寬; 5402:將所述脈寬與所述基準(zhǔn)脈寬做比較,確定出脈寬的類型; 5403:依照脈寬的類型轉(zhuǎn)換為對應(yīng)的二進(jìn)制序列。
4.根據(jù)權(quán)利要求3所述的一種基于音頻通訊中的音頻解碼方法,其特征在于,步驟S400還包括: 5404:設(shè)脈寬與基準(zhǔn)脈寬的比例為fac、長脈寬為L、短脈寬為S,則fac在(1.5,+ °° )時歸屬度為100%,在[0,1.2)時歸屬度為0,其他情況歸屬度為l-(1.5-fac)/0.3 ; 5405:所述脈寬序列轉(zhuǎn)換為二進(jìn)制序列出現(xiàn)錯誤時,采用模糊邏輯進(jìn)行糾錯,具體的: 當(dāng)兩個長脈寬LL相加后的脈寬長度與基準(zhǔn)脈寬的比例fac的歸屬度小于100%時,將兩個長脈寬LL轉(zhuǎn)換成兩個短脈寬SS ; 當(dāng)出現(xiàn)LSL情況時,進(jìn)一步分析,當(dāng)前一個長脈寬L小于后一個長脈寬L,且前一個長脈寬L與短脈寬S相加的脈寬長度與基準(zhǔn)脈寬的比例fac的歸屬度在90%到100%之間,則轉(zhuǎn)為SSL ;當(dāng)前一個長脈寬L大于后一個長脈寬L,且后一個長脈寬L與短脈寬S相加后的脈寬長度與基準(zhǔn)脈寬的比例fac的歸屬度在90%到100%之間,則轉(zhuǎn)為LSS ;否則直接轉(zhuǎn)為LLL ; 當(dāng)出現(xiàn)脈寬序列LSS (2m-l) SL共2m+l個S時,進(jìn)一步分析,當(dāng)前一個長脈寬L與第一個短脈寬S之和小于最后一個短脈寬S和最后一個長脈寬L之和,且第一個長脈寬L和第一個短脈寬S之和與基準(zhǔn)脈寬的比例的歸屬度在90%到100%之間,則轉(zhuǎn)為SSS(2m-l)SL ;否則轉(zhuǎn)為LLS(2m-l)SL ;當(dāng)前一個長脈寬L與第一個短脈寬之和大于或等會最后一個短脈寬S和后一個長脈寬L之和,且后一個長脈寬L和最后一個短脈寬S之和與基準(zhǔn)脈寬的比例的歸屬度小于在90%到100%之間,則轉(zhuǎn)為LSS(2m-l)SS ;否則轉(zhuǎn)換成LSS(2m_l)LL。
5.根據(jù)權(quán)利要求1所述的一種基于音頻通訊中的音頻解碼方法,其特征在于,在步驟S100中發(fā)送端發(fā)送過來的原始編碼波形中包括標(biāo)識字符。
6.—種基于音頻通訊中的音頻解碼裝置,運(yùn)用于接收端和發(fā)送端之間的音頻通訊連接,其特征在于,包括接收模塊、濾波模塊、計(jì)算模塊、第一轉(zhuǎn)換模塊和第二轉(zhuǎn)換模塊; 所述接收模塊,用于接收端接收發(fā)送端發(fā)送過來的原始編碼波形; 所述濾波模塊,用于接收端對原始編碼波形進(jìn)行濾波處理得到第一編碼波形; 所述計(jì)算模塊,用于計(jì)算第一編碼波形,得到脈寬序列; 所述第一轉(zhuǎn)換模塊,用于將所述脈寬序列轉(zhuǎn)換為二進(jìn)制序列,在轉(zhuǎn)換出錯時使用模糊邏輯進(jìn)行糾錯; 所述第二轉(zhuǎn)換模塊,用于將所述二進(jìn)制序列根據(jù)編碼規(guī)范轉(zhuǎn)換為編碼結(jié)果; 所述計(jì)算模塊包括選取單元、線性插值計(jì)算單元和計(jì)算單元; 所述選取單元,用于以零點(diǎn)線為界將所述第一編碼波形分為上下區(qū)域,取上區(qū)域中最接近零點(diǎn)線的X數(shù)據(jù)點(diǎn),下區(qū)域中最接近零點(diǎn)線的Y數(shù)據(jù)點(diǎn); 所述線性插值計(jì)算單元,用于對所述X數(shù)據(jù)點(diǎn)和Y數(shù)據(jù)點(diǎn)采用線性插值法計(jì)算得到過零點(diǎn)值; 所述計(jì)算單元,用于計(jì)算相鄰兩個過零點(diǎn)值,得到脈寬。
7.根據(jù)權(quán)利要求6所述的一種基于音頻通訊中的音頻解碼裝置,其特征在于,所述濾波模塊為自適應(yīng)濾波器。
8.根據(jù)權(quán)利要求6所述的一種基于音頻通訊中的音頻解碼裝置,其特征在于,所述第一轉(zhuǎn)換模塊包括第一確定單元、第二確定單元、模糊邏輯糾錯單元和轉(zhuǎn)換單元; 所述第一確定單元,用于按照發(fā)送端的編碼方式取所述脈寬序列中的前導(dǎo)脈寬部分,從所述前導(dǎo)脈寬中確定出基準(zhǔn)脈寬; 所述第二確定單元,用于將所述脈寬與所述基準(zhǔn)脈寬做比較,確定出脈寬的類型; 所述模糊邏輯糾錯單元,用于將所述脈寬轉(zhuǎn)換為二進(jìn)制序列出現(xiàn)錯誤時,采用模糊邏輯進(jìn)行糾錯; 所述轉(zhuǎn)換單元,用于依照脈寬的類型轉(zhuǎn)換為對應(yīng)的二進(jìn)制序列。
【文檔編號】G10L21/04GK104485112SQ201410742992
【公開日】2015年4月1日 申請日期:2014年12月8日 優(yōu)先權(quán)日:2014年12月8日
【發(fā)明者】劉文燦 申請人:福建聯(lián)迪商用設(shè)備有限公司