国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

基于STM32的光話機(jī)ADPCM壓縮編碼算法與實(shí)現(xiàn)

2016-12-19 11:41胡曉婷宋壽鵬
電子科技 2016年11期
關(guān)鍵詞:編解碼誤碼率光纖

胡曉婷,宋壽鵬

(江蘇大學(xué) 機(jī)械工程學(xué)院,江蘇 鎮(zhèn)江 212013)

?

基于STM32的光話機(jī)ADPCM壓縮編碼算法與實(shí)現(xiàn)

胡曉婷,宋壽鵬

(江蘇大學(xué) 機(jī)械工程學(xué)院,江蘇 鎮(zhèn)江 212013)

針對(duì)部分光纖鋪設(shè)及維護(hù)工作是在山區(qū)、森林等無線信號(hào)差的條件下進(jìn)行的情況,文中為了解決此種環(huán)境下通話困難的問題,同時(shí)降低數(shù)碼率,節(jié)省光纖帶寬,采用了一種簡(jiǎn)化的語音壓縮編碼算法,并在基于STM32單片機(jī)的光話機(jī)中實(shí)現(xiàn)。該壓縮編碼算法采用自適應(yīng)差分脈沖編碼調(diào)制技術(shù),具有較高的壓縮比。仿真實(shí)驗(yàn)表明,在壓縮比為4:1的條件下,可獲得較低的數(shù)碼率和較高的語音通話質(zhì)量。

光話機(jī);語音;壓縮編碼算法;自適應(yīng)差分脈沖編碼調(diào)制;STM32

隨著光纖的大量使用,光纖鋪設(shè)及維護(hù)工作顯地越重要,且眾多光纖鋪設(shè)及維護(hù)工作是在惡劣的環(huán)境中進(jìn)行的,比如山區(qū)、森林等,這些地區(qū)無線信號(hào)差,普通的通訊設(shè)備通話質(zhì)量差甚至無法通訊,這就給施工人員的工作帶來了困難。光話機(jī)就是為解決以上問題研制的一種光纖通訊設(shè)備,目前市場(chǎng)上普遍存在的光話機(jī)以數(shù)字式為主[1],且價(jià)格昂貴。此外,目前光話機(jī)普遍采用的編碼方法是脈沖編碼調(diào)制(Pulse Code Modulation,PCM),它是比較簡(jiǎn)單的波形編碼方法[2-4]。盡管該種編碼算法簡(jiǎn)單,但其數(shù)碼率高,占用帶寬[5],不利于遠(yuǎn)距離通訊。自適應(yīng)差分脈沖編碼調(diào)制(Adaptive Differential Pulse Code Modulation,ADPCM)技術(shù),可以對(duì)語音信號(hào)實(shí)現(xiàn)較高比例的壓縮,降低比特率[6-7]。國際電報(bào)電話咨詢委員會(huì)提出的G.721、G.726及G.727編碼器建議均采用ADPCM結(jié)構(gòu)作為長(zhǎng)途傳輸中的通用語言編碼方法[8]。但該種壓縮編碼算法較復(fù)雜,計(jì)算量較大[9-10],應(yīng)用在光話機(jī)中就需要高性能的處理器及一系列匹配外設(shè),會(huì)增加系統(tǒng)成本。

針對(duì)以上情況,采用互動(dòng)多媒體協(xié)會(huì)(Interactive Multimedia Association ,IMA)標(biāo)準(zhǔn)的ADPCM語音壓縮編碼算法,并在基于STM32單片機(jī)的光話機(jī)中實(shí)現(xiàn)。該種算法壓縮比比PCM算法高,復(fù)雜度比ADPCM壓縮編碼算法低[11],可解決光纖鋪設(shè)及維護(hù)過程中無線信號(hào)差環(huán)境時(shí)的通訊問題,降低光話機(jī)成本實(shí)現(xiàn)高質(zhì)量語音通話功能。

1 IMA-ADPCM壓縮編碼算法

語音信號(hào)是一種具有短時(shí)平穩(wěn)性的非平穩(wěn)隨機(jī)信號(hào),其相鄰樣點(diǎn)間有著較強(qiáng)的相關(guān)性。IMA-ADPCM的核心思想就是利用自適應(yīng)方法改變量化階的大小,即使用小的量化階去編碼小的差值,使用大的量化階去編碼大的差值;利用語音樣本之間的相關(guān)性,使用過去的樣本值估算下一個(gè)輸入樣本的預(yù)測(cè)值,使實(shí)際樣本值和預(yù)測(cè)值之間的差值總是最小。本系統(tǒng)采用的IMA-ADPCM壓縮編碼算法是一種適用于單片機(jī)的語音編碼算法[12]。該算法采用4位編碼輸出方式,其量化值通過查詢兩個(gè)表的方式自適應(yīng)量化獲得。

假設(shè)采樣點(diǎn)的位置為i,c(i)表示在i點(diǎn)的編碼輸出。輸入信號(hào)的實(shí)際值為x(i),輸入信號(hào)的預(yù)測(cè)值用y(i)表示,Δ表示實(shí)際值和預(yù)測(cè)值的差值。則

(1)

(2)

y(i+1)=y(i)+Δ

(3)

其中,step[index]表中給出了量化階的尺寸;index[c(i)]表中給出了對(duì)應(yīng)的索引值。

編碼算法的自適應(yīng)調(diào)整主要是對(duì)量化階進(jìn)行自適應(yīng)修正,量化階尺寸的變化與當(dāng)前量化階的尺度和上一個(gè)量化編碼輸出值有關(guān)。4位編碼中除最左邊最高位為符號(hào)位外的其余3位作為對(duì)當(dāng)前音頻樣本計(jì)算得到的量化值c(i),用作表index[c(i)]的索引,這個(gè)表中查得的值用于對(duì)表step[index]的索引進(jìn)行修正。

index[i+1]=index[i]+index[c(i)]

(4)

表index的索引值index[c(i)]與上一次儲(chǔ)存的索引index[i]相加,如式(4)所示,檢查所得到的和,要保證本次索引值index[i+1]在0~88之間。然后將其作為表step的索引來查詢量化階尺寸,量化級(jí)尺寸在32 768-32 767之間(16位有符號(hào)數(shù)的范圍)。最后將本次索引值index[i+1]存儲(chǔ),用于下一步的自適應(yīng)量化計(jì)算。

2 壓縮編碼算法在STM32的應(yīng)用

發(fā)送信號(hào)時(shí),語音通過麥克風(fēng)將聲音信號(hào)轉(zhuǎn)換為電信號(hào),再使用VS1053B對(duì)語音信號(hào)進(jìn)行采集編碼之后發(fā)送到單片機(jī),單片機(jī)將壓縮編碼后的數(shù)據(jù)通過串口經(jīng)過電平轉(zhuǎn)換之后發(fā)送到光纖收發(fā)器,最后,光纖收發(fā)器進(jìn)行電光轉(zhuǎn)換將語音信號(hào)從光纖信道發(fā)送出去。接收信號(hào)時(shí),光話機(jī)接收來自另一端光話機(jī)發(fā)送的語音信號(hào),首選光纖收發(fā)器接收到信號(hào)并通過電平轉(zhuǎn)換傳輸至單片機(jī),單片機(jī)控制解碼單元對(duì)接收的待解碼信號(hào)進(jìn)行解碼,最后經(jīng)過功率放大處理后輸出驅(qū)動(dòng)揚(yáng)聲器發(fā)聲。為方便操作,系統(tǒng)還配備了控制按鍵、TFTLCD液晶顯示器、可供選擇使用的耳機(jī)接口等。 光話機(jī)系統(tǒng)工作流程圖如圖1所示。

圖1 光話機(jī)系統(tǒng)工作流程圖

信號(hào)在光纖中的傳輸是通過光纖收發(fā)器實(shí)現(xiàn)的,但光纖收發(fā)器的發(fā)送接收電平為差分輸入輸出電平,與單片機(jī)串口電平不匹配。根據(jù)光話機(jī)全雙工的通訊要求,需要在單片機(jī)和光纖收發(fā)器之間設(shè)計(jì)一個(gè)四線制RS485電平轉(zhuǎn)換電路用于傳輸信號(hào)的電平轉(zhuǎn)換,此處用的是SP1490E,將其分別與單片機(jī)通用收發(fā)串口USART及光纖收發(fā)器連接。此外,選用的光纖收發(fā)器實(shí)現(xiàn)收發(fā)功能還需要外加直流偏置,光纖收發(fā)模塊的具體電路如圖2所示。

圖2 光纖收發(fā)電路

VS1053B內(nèi)部包含一個(gè)高性能、低功耗的DSP處理器內(nèi)核,可實(shí)現(xiàn)多種音頻格式包括WAV(IMA-ADPCM,PCM)格式的音頻解碼和IMA-ADPCM編碼功能。此外該芯片內(nèi)部還具有一個(gè)可變采樣率的ADC及可擴(kuò)展外部DAC的IIS接口。編碼時(shí),語音信號(hào)經(jīng)過麥克風(fēng)進(jìn)入VS1053B,通過其自帶的A/D模數(shù)轉(zhuǎn)換之后進(jìn)行IMA-ADPCM編碼緩存,之后對(duì)編碼信號(hào)添加文件頭使其成為帶有采樣率、通道數(shù)等信息的文件,最后單片機(jī)通過數(shù)據(jù)輸出口讀取緩存數(shù)據(jù)做進(jìn)一步處理;解碼時(shí),將接收的編碼信號(hào)送入VS1053B進(jìn)行解碼并輸出。

圖3 語音編解碼電路

光話機(jī)選用的處理器為STM32F103RBT6,其具有價(jià)格低、功能強(qiáng)、使用簡(jiǎn)單的優(yōu)點(diǎn)。其內(nèi)部集成了20 kB的SRAM,128 kB的片內(nèi)Flash,串行外設(shè)接口SPI,全雙工通用同步/異步串行收發(fā)模塊USART,DMA等強(qiáng)大的外設(shè)功能,可實(shí)現(xiàn)與光話機(jī)系統(tǒng)多個(gè)外設(shè)進(jìn)行通訊的功能。此外,該處理器還具有在線調(diào)試接口JTAG,方便系統(tǒng)程序調(diào)試。最終,STM32單片機(jī)通過控制外部編解碼器實(shí)現(xiàn)語音編解碼功能[13-14],單片機(jī)電路如圖4所示。

圖4 STM32單片機(jī)電路

3 仿真結(jié)果

為驗(yàn)證IMA-ADPCM算法性能,設(shè)計(jì)使用多組不同的語音樣本進(jìn)行仿真試驗(yàn)。語音樣本中包括元音、輔音及長(zhǎng)短不同的語音信號(hào),其中樣本1為元音,樣本2為輔音,樣本3為0.01 s的語音,樣本4為0.03 s的語音。參考ADPCM語音編碼標(biāo)準(zhǔn)的仿真實(shí)現(xiàn)[15],分別用ADPCM壓縮編碼算法和IMA-ADPCM壓縮編碼算法對(duì)各個(gè)語音樣本進(jìn)行仿真。從誤碼率及輸出編解碼波形兩個(gè)方面對(duì)兩種編解碼算法進(jìn)行比較。

設(shè)采樣位數(shù)為16位,采樣頻率為8 kHz。

(5)

并通過式(5)分別對(duì)兩種編碼算法的誤碼率進(jìn)行計(jì)算。式中,ne為誤碼率;ni為編解碼之后的語音信號(hào)值不同于原始語音信號(hào)值的總個(gè)數(shù);n為采集的原始語音的總個(gè)數(shù)。

計(jì)算出4個(gè)語音樣本的誤碼率,如表1所示,可以得出ADPCM和IMA-ADPCM兩種壓縮編碼算法輸出語音的誤碼率都比較低,但ADPCM壓縮編碼算法的誤碼率相對(duì)要高。此外,語音樣本時(shí)間過長(zhǎng)時(shí),兩種算法編解碼都會(huì)出現(xiàn)明顯延時(shí),所以語音幀長(zhǎng)度的選取也不宜過長(zhǎng),否則會(huì)出現(xiàn)語音信號(hào)不連續(xù)的問題。

表1 不同語音樣本誤碼率

選擇一個(gè)內(nèi)容為“12345”的語音樣本,驗(yàn)證經(jīng)過IMA-ADPCM算法編解碼之后的語音信號(hào)與原始語音信號(hào)是否有失真出現(xiàn)。分別采用ADPCM和IMA-ADPCM算法對(duì)語音信號(hào)進(jìn)行編解碼并輸出對(duì)應(yīng)原始信號(hào)及編解碼輸出波形,如圖5所示。從波形輸出結(jié)果可看出,兩種算法編解碼之后輸出的語音信號(hào)波形均未出現(xiàn)明顯失真。

圖5 語音信號(hào)波形對(duì)比圖

4 結(jié)束語

文中研究了IMA-ADPCM壓縮編碼算法,并將其在基于STM32的光話機(jī)中實(shí)現(xiàn)。該壓縮編碼算法壓縮比為4∶1,誤碼率低,數(shù)碼率為32 bit·s-1,主觀意見評(píng)分 (Mean Opinion Score,MOS)>4,具有較低的數(shù)碼率和較高的語音質(zhì)量。該光話機(jī)系統(tǒng)電路設(shè)計(jì)簡(jiǎn)單、成本低,對(duì)光話機(jī)產(chǎn)品在壓縮編碼算法方面的研究具有一定的補(bǔ)充意義。

[1] 夏震宇,翟昭文.光纖電話機(jī):中國,200420022025.3[P].2005-09-14.

[2] 張玥.光纖語音電話通信技術(shù)概述[J].現(xiàn)代科技,2009(6):56-58.

[3] 王炳錫.語音編碼[M].西安:西安電子科技大學(xué)出版社,2002.

[4] 吳家安.語音編碼技術(shù)及應(yīng)用[M].北京:機(jī)械工業(yè)出版社,2006.

[5] 王培開.基于51單片機(jī)的PCM解碼設(shè)[J].電子制作,2012(1):58-64.

[6] ITU CCITT. Recommendation G.726 40,32,24,16kB/s adaptive differential pulse code modulation[S].Geneva:ITV CCITT,1990.

[7] 李睿.基于FPGA系統(tǒng)的ADPCM編解碼應(yīng)用[D].上海:復(fù)旦大學(xué),2009.

[8] 房德新,魏建強(qiáng).ITU G.726語音編碼器在DSP上的實(shí)現(xiàn)[J].微計(jì)算機(jī)信息,2001,17(10):28-29.

[9] 王小軍,趙嘎,舒平平,等.基于FPGA的IMA-ADPCM 編/解碼器的設(shè)計(jì)與實(shí)現(xiàn)[J]. 云南大學(xué)學(xué)報(bào):自然科學(xué)版,2012(4):415-419.

[10] 李天任.基于DSP的ADPCM編譯碼系統(tǒng)研究[D].長(zhǎng)春:長(zhǎng)春理工大學(xué),2005.

[11] 徐朝炯,李平,高峰.基于ADPCM 算法的語音錄放系統(tǒng)優(yōu)化設(shè)計(jì)與FPGA 實(shí)現(xiàn)[J].電聲技術(shù),2007,31(S2):27-30.

[12] 萬曉華,陳連坤.一種適用于單片機(jī)的語音編碼算法及應(yīng)用[J].計(jì)算機(jī)工程,2005,31(6):184-185.

[13] 張崇武.基于單片機(jī)的語音編碼系統(tǒng)實(shí)現(xiàn)[D].濟(jì)南:山東大學(xué),2012.

[14] ST.AN2931 application note implementing the ADPCM algorithm in high-density STM32F103xx microcontrollers [M].Italy:ST,2009.

[15] 張雪英.數(shù)字語音處理及Matlab仿真[M].北京:電子工業(yè)出版社,2010.

Optical Telephone ADPCM Compression Coding Algorithm and Implementation Based on STM32

HU Xiaoting, SONG Shoupeng

(School of Mechanical Engineering, Jiangsu University, Zhenjiang 212013, China)

Some optical fiber laying and maintenance are carried out in poor wireless environment, such as mountain areas and forests. In order to solve the problem of call difficulties in such environments, reduce digital rate and save fiber bandwidth, a simplified speech compression coding algorithm is adopted and realized in optical telephones based on the STM32 single chip microcomputer. The speech compression coding algorithm adopts the adaptive differential pulse code modulation technology, which has high compression ratio. Simulation result shows that it can achieve high-quality voice calls at a compression ratio of 4:1.

optical telephone; speech; compression coding algorithm; adaptive differential pulse code modulation; STM32

2016- 01- 30

胡曉婷(1990-),女,碩士研究生。研究方向: 光纖通信。宋壽鵬(1967-),男,教授,博士。研究方向:超聲波檢測(cè)新原理及檢測(cè)設(shè)備等。

10.16180/j.cnki.issn1007-7820.2016.11.005

TN912

A

1007-7820(2016)11-016-04

猜你喜歡
編解碼誤碼率光纖
面向通信系統(tǒng)的誤碼率計(jì)算方法
ASN.1 的PER 分層運(yùn)行庫系統(tǒng)的設(shè)計(jì)和實(shí)現(xiàn)
FIBBR King-A系列HDMI光纖線
1553B總線控制器編解碼設(shè)計(jì)
為多重編解碼世界做好準(zhǔn)備
大型民機(jī)試飛遙測(cè)視頻編解碼方法研究
一種快速同步統(tǒng)計(jì)高階調(diào)制下PN 碼誤碼率的方法?
高品質(zhì)的忠實(shí)還原 FIBBR Ultra Pro2 HDMI光纖線
淺談數(shù)字通信系統(tǒng)中誤碼率的估計(jì)方法
一條光纖HDMI線的誕生長(zhǎng)飛/長(zhǎng)芯盛FIBBR工廠走訪實(shí)錄
通州区| 辽宁省| 淮南市| 安徽省| 历史| 修武县| 泾川县| 平阴县| 云梦县| 万山特区| 余姚市| 阿尔山市| 宜丰县| 平阴县| 金溪县| 来安县| 宜兴市| 南宫市| 盐池县| 吴川市| 福建省| 贵德县| 枣阳市| 阳西县| 宿迁市| 碌曲县| 廉江市| 清河县| 集贤县| 青州市| 酒泉市| 印江| 壶关县| 松溪县| 淮阳县| 措勤县| 深水埗区| 乌海市| 海晏县| 贞丰县| 高密市|