焦杰 ,孫宇飛
(1.吉林省廣播電視研究所,長春130061;2.吉林省廣播電視監(jiān)測臺)
?
焦杰1,孫宇飛2
(1.吉林省廣播電視研究所,長春130061;2.吉林省廣播電視監(jiān)測臺)
本文介紹了一種采用快速測量載波頻率進行調頻廣播解調的方法,主要應用于調頻廣播信號監(jiān)測設備中,同時還提供了用STM32F407來實現(xiàn)這種功能的關鍵電路和其中的設計要點。為了進一步提高解調性能并降低噪聲,特別設計出一種非常簡單有效的濾波電路。運用這種解調方法可以省去傳統(tǒng)的鑒頻器、A/D模數(shù)轉換器以及連接在兩者之間的音頻放大電路。相關電路在調頻廣播監(jiān)測設備中進行了實際測試,取得了良好的效果。
調頻廣播;鑒頻器;頻率測量;TDA18273;STM32F407
在廣播電視監(jiān)管工作中,對廣播信號的監(jiān)測重點是需要監(jiān)測播出節(jié)目的聲音內容。對調頻廣播節(jié)目內容進行監(jiān)測,就是把接收到的廣播信號混頻,得到中頻之后,再用鑒頻器解調,然后把放大電路之后的音頻信號經A/D模數(shù)轉換器得到廣播節(jié)目內容的數(shù)字化信號,利用網絡把遠程監(jiān)測點上這種數(shù)字化的聲音數(shù)據(jù)傳輸?shù)奖O(jiān)測中心。
在廣播監(jiān)測設備中,對調頻信號解調的傳統(tǒng)方法主要有:
① 調頻-調幅變換型鑒頻器解調:用一個LC諧振回路組成一個帶通濾波器,當帶通濾波器的中心頻率與調頻信號的中心頻率重合的時候,輸出幅度最大;若兩個頻率稍遠離,輸出振幅就減小。這樣就把調頻信號變成了調幅信號,再經過振幅檢波就實現(xiàn)解調。這種方法成本比較低,靈敏度一般。
② 鑒相器解調:用一個振蕩器(例如鎖相環(huán))產生一個與接收到的調頻信號的中心頻率相同的本地振蕩頻率,以此頻率作為基準,來檢查接收到的信號的相位與此本振相位之差,將這個相位差變成電信號,實現(xiàn)解調。這種方法的靈敏度高,抗干擾能力強,適合窄帶信號,但是比較復雜,線性度與壓控振蕩器性能有關。
③ 乘積型相位鑒頻器解調:將調頻波經過移相電路再與原信號相乘。如果設計移相電路相位的變化與調頻波瞬時頻率的變化接近線性關系,那么相乘之后通過低通濾波器即可得到解調信號。這種方法性能好、便于集成,在收音機中應用較多。
④ 定寬脈沖平均法解調:這種方法把調頻信號的每一個周期都通過一個單穩(wěn)態(tài)電路,變成固定寬度和固定幅度的正脈沖,然后經過低通濾波器。高頻信號占空比高,所以平均電壓高;低頻信號占空比小,平均電壓低。這種方法解調線性好、頻帶寬,比較適合設計集成電路解調器。
本文分析了一種可以直接獲得數(shù)字化調頻廣播節(jié)目聲音數(shù)據(jù)的鑒頻解調方法,并用單片機設計了整機進行實測?;驹硎怯幂^快的速度測量出中頻載波的瞬時頻率,實現(xiàn)數(shù)字化解調。這種方法不僅具有線性度好、線性范圍寬、鑒頻靈敏度高的優(yōu)點,而且電路很簡單。
根據(jù)頻率調制的定義,載波的瞬時頻率按照調制信號的變化規(guī)律而變化。因為調頻廣播載波頻率發(fā)生的偏移與調制信號電壓成正比關系,所以只要能快速測量出載波的瞬時頻率,就能恢復調制信號,達到解調目的。
傳統(tǒng)方式對廣播節(jié)目內容進行監(jiān)測,需要把聲音電壓信號進行A/D轉換,通常用8位16 ksps的采樣率,相鄰兩個采樣點的時間間隔為62.5 μs。也就是說,如果能夠每隔62.5 μs測量一次調頻廣播中頻信號頻率的瞬時值,就實現(xiàn)了用16 ksps的采樣率數(shù)字化調頻廣播的聲音節(jié)目內容。因為調頻廣播載波頻率發(fā)生的偏移與調制信號電壓成正比,所以采用快速測頻方法得到的數(shù)值與那種用傳統(tǒng)鑒頻器解調,然后放大再進行A/D轉換方法所取得的數(shù)據(jù)在結果上是等效的。其中的關鍵是,如何在較短的時間段準確測量,得到中頻信號的瞬時頻率值。
1.1測量頻率的方法
對信號頻率進行測量主要有3種方法:
① 對于頻率較高的信號,固定在一個開門時間段內,用計數(shù)器記錄每個信號脈沖邊沿,脈沖數(shù)量除以開門時長就得到了頻率數(shù)值。
② 對于頻率較低的信號,測量信號連續(xù)兩個或多個脈沖所經歷的周期,計算得到兩個相鄰脈沖之間的周期,然后取倒數(shù)就得到頻率數(shù)值。
③ 等精度測頻法:把待測信號與一個頻率已知的參照信號同時進行計數(shù),因為兩個信號脈沖邊沿重合時的計數(shù)值與它們的拍頻有關系,所以可根據(jù)已知信號頻率計算出待測信號的頻率。在某些情況下也可以看作是上一種測量多個脈沖平均周期方法的精密形式。
在我國調頻廣播標準中,規(guī)定調頻廣播的最大調制頻偏是75 kHz。選用接收芯片TDA18273設計調頻廣播的信號接收電路,得到1.25 MHz低中頻信號,再用STM32F407快速測量這個中頻信號的瞬時頻率實現(xiàn)鑒頻解調。因為瞬時頻率與聲音電壓是線性關系,所以只需把測得的頻率值與載頻1.25 MHz相減,即可獲得數(shù)字化的聲音電壓數(shù)據(jù)。圖1是采用這種解調方法的調頻廣播監(jiān)測設備原理框圖。
圖1 調頻廣播監(jiān)測設備原理框圖
先分析采取在固定開門時段里進行計數(shù)方法的可行性,也就是用一個計數(shù)器累加中頻信號脈沖的數(shù)量,每隔62.5 μs保存一次計數(shù)值之后清零,再重新計數(shù)。當頻偏為0時,1250 kHz/16 kHz=78.125。因為計數(shù)法會引入一個整數(shù)的誤差,所以會得到計數(shù)值78或79。
當頻偏為+75 kHz時,(1250 kHz+75 kHz)/16 kHz=82.812 5,所以會得到計數(shù)值82或83。
當頻偏為-75 kHz時,(1250 kHz-75 kHz)/16 kHz=73.437 5,所以會得到計數(shù)值73或74。
可以看出,這種方法得到的數(shù)據(jù)動態(tài)范圍太小,在最大調解度下,一個脈沖的計數(shù)誤差大約會影響10%的精度,導致解調之后的聲音存在較大的失真和噪音。在實際電路實驗中,明顯可以聽到解調得到的節(jié)目帶有很大的噪音,效果很不好。
為實現(xiàn)較高的測頻精度,設計用STM32F407的一個計數(shù)器和兩個定時器聯(lián)合工作。設置TIM5作為計數(shù)器采用外觸發(fā)方式,累計每個中頻脈沖,從0x0000 0000計數(shù)到0xFFFF FFFF,然后自動歸零,無需中斷;TIM14作為定時器用42 MHz的固定頻率計數(shù),從0x0000計數(shù)到0xFFFF之后自動歸零,并且工作在捕獲模式上,每個中頻脈沖都把定時器14的計數(shù)值保存到捕獲寄存器中,也無需中斷服務;TIM13作為定時器,每隔62.5 μs觸發(fā)一次中斷,中斷服務程序每次都取得TIM5計數(shù)器和TIM14捕獲寄存器中的數(shù)值,并結合上次中斷得到兩個計數(shù)器的歷史數(shù)值,計算出瞬時頻率。圖2是快速測頻原理框圖。
圖2 快速測頻原理框圖
根據(jù)圖2中描述的原理,可以得到瞬時頻率計算公式:
f=(CNT1-CNT0)×42 000 000/(TIM1-TIM0)
上式中,CNT1和TIM1分別是本次中斷得到的TIM5計數(shù)值和TIM14捕獲值,而CNT0和TIM0分別是上次中斷所取得的數(shù)值。測頻原理就是在這62.5 μs中,通過測量(CNT1-CNT0)個中頻脈沖的平均周期,計算倒數(shù)得到中頻頻率f。為了提高軟件工作效率,采用了整數(shù)乘除計算,為了防止除法計算損失精度,計算時需要先乘后除。當頻偏為+75 kHz時,(CNT1-CNT0)會達到最大值83,與42 MHz相乘之后的結果小于4 GHz,所以用32位無符號數(shù)進行計算不會發(fā)生乘法溢出的情況。
定時器14的計數(shù)頻率為42 MHz,而定時器13中斷處理程序響應存在μs量級的誤差,即每μs有42個計數(shù)值的誤差。也就是說,中斷服務程序直接從TIM14_CNT寄存器讀取數(shù)據(jù)來計算頻率必然存在較大誤差。因此,必須讓待測中頻信號脈沖在累加計數(shù)器5的同時,利用TIM14的捕獲功能,把脈沖時刻的TIM14_CNT寄存器數(shù)值保存到TIM14_CCR1捕獲寄存器中。然后在TIM13產生中斷時,才能從TIM14_CCR1中得到與計數(shù)器5信息同步的數(shù)值,從而準確計算頻率。
1.2STM32F407中斷處理
圖3 中斷服務程序流程
在STM32F407內部,硬件電路對于TIM5的計數(shù)與TIM14捕獲兩項工作有可能并不在同一時鐘邊沿完成。另外還有中頻信號脈沖可能會在中斷處理期間到達,并且中斷服務程序也不可能同時讀取到TIM5_CNT和TIM14_CCR1兩個寄存器的數(shù)據(jù)。這樣很可能發(fā)生一種意外情況:中斷服務程序剛讀完TIM5_CNT,即將要讀取TIM14_CCR1時,新到一個計數(shù)脈沖,導致接下來想要讀取的那個TIM14_CCR1內容發(fā)生了改變,利用兩個并不配對的數(shù)據(jù)計算會得到錯誤的結果。所以需要在TIM13的中斷處理程序中交替循環(huán)讀取這兩個寄存器的內容,如果連續(xù)兩次都能取得相同的數(shù)值,那么這個數(shù)值才是可用的,否則兩個寄存器的內容就不配對,需要循環(huán)回去重讀TIM5_CNT和TIM14_CCR1,直到確認它們的內容沒有發(fā)生意外改變?yōu)橹?。圖3是TIM13中斷服務程序的流程圖。
在實際的應用電路中,不可避免會產生鑒頻誤差,還存在線性范圍和線性度的問題。對鑒頻器而言,主要分析鑒頻靈敏度、鑒頻線性范圍和線性度三個重要指標。因為傳統(tǒng)鑒頻器使用元件較多,不方便精確分析誤差,尤其是那些帶有LC二階電路的鑒頻器,更是不容易精確計算。而采用了STM32F407直接鑒頻的方法很容易計算鑒頻誤差,從而分析主要的鑒頻性能指標。
2.1鑒頻誤差與鑒頻靈敏度
從前面測頻過程可以看到,這里產生誤差的可能原因發(fā)生在TIM14捕獲瞬間的那一個整數(shù)誤差,而且這個誤差只存在于TIM13中斷之前發(fā)生的那次捕獲。由42 MHz時鐘驅動的TIM14在62.5 μs內應該計數(shù)2 625次,捕獲數(shù)值可能會出現(xiàn)2 624和2 626。所以可以計算出頻率測量的最大誤差:
(2 626-2 624)/2 625≈0.076 19%
由此可知,實際電路可以達到相當于10位以上的A/D轉換精度,滿足監(jiān)測設備所需要8位16 ksps采樣的要求。
根據(jù)鑒頻誤差可以計算出鑒頻靈敏度:
1.25 MHz×0.076 19%=952.4 Hz
2.2鑒頻線性范圍
傳統(tǒng)鑒頻器的鑒頻曲線是“S”形,線性度不理想。因為單片機直接測量頻率是一種數(shù)字化的鑒頻方法,所以在整個工作范圍區(qū)間有良好的線性。如果軟件設計使用32位無符號數(shù),那么最高工作頻率為:
4 GHz/42 MHz×16 kHz≈1.636 MHz
在前面分析瞬時頻率計算公式的時候,可以看到制約測量頻率上限的因素是TIM5計數(shù)值乘以42 MHz之后,在32位無符號情況下可能發(fā)生上溢。考慮到TIM14導致的精度誤差大約是千分之一,可將數(shù)值42 000 000最低位的兩個零舍棄,實現(xiàn)了在32位計算條件下把上溢容限提高100倍,實測的數(shù)值再乘回100仍然得到以Hz為單位的頻率值。
從測頻原理來分析測量的下限頻率,因為系統(tǒng)要求在62.5 μs之內必須至少有兩個中頻脈沖邊沿到達,所以最低測量頻率要高于32 kHz。
2.3鑒頻線性度
測量誤差主要來自于兩個方面,一個是STM32F407結構導致在TIM14捕獲時的計數(shù)會多計或者少計一個脈沖,另一個是42 MHz時鐘的精度。在STM32F407內部用鎖相環(huán)把石英晶體振蕩器倍頻到42 MHz作為計數(shù)時鐘,而通常晶體振蕩器的精度可以達到萬分之一以上,遠小于其他電路誤差,可以忽略不計。因此,在整個工作范圍內,這個鑒頻的誤差是均勻的,不存在誤差特別大的特殊頻率。可以計算出在(32 kHz,1.636 MHz)這個工作頻率區(qū)間內的線性度:
952.4 Hz/(1.636 MHz-32 kHz) ≈ 5.938×10-4
選用STM32F407控制TDA18273數(shù)字調諧器芯片組成的調頻廣播接收電路,把它們用I2C總線接口連接在一起。設置TDA18273工作在調頻收音機模式下,把天線收到的調頻廣播信號變頻得到1.25 MHz低中頻信號。STM32F407直接測量中頻信號頻率,并把數(shù)字化的聲音數(shù)據(jù)直接利用網絡傳輸?shù)接嬎銠C。圖4是用TDA18273實現(xiàn)的調頻廣播接收電路。
因為STM32F407的輸入引腳帶有史密特整形電路,所以可以把TDA18273輸出低中頻1.25 MHz信號,用電容隔直后疊加到大約1.6 V的直流分壓電阻R19和R20上,直接輸入到STM32F407的PA0和PF9引腳。STM32F407和網絡接口電路略——編者注。
設置PA0為TIM5的計數(shù)器外部輸入引腳,每個脈沖的上升沿累加TIM5。設置PF9為TIM14的捕獲輸入外部引腳,每個脈沖的上升沿把TIM14_CNT中的內容保存到TIM14_CCR1中。在STM32F407的RAM中設置一個緩存隊列,保存每次TIM13中斷服務程序中測量的頻率值,并轉換成為8位的聲音數(shù)據(jù),再用網卡接口芯片DP83848設計網絡接口,采用TCP協(xié)議把這些聲音數(shù)據(jù)送給計算機,計算機利用聲卡播放實時聲音的同時,還可以保存歷史錄音文件。
實際測試以上接收解調電路,當信號較強,高于50 dBμV時,解調的聲音信號效果很好,基本聽不到噪聲,可是當信號的強度再降低一些時,噪聲明顯增大。通過觀察1.25 MHz中頻波形并分析測頻數(shù)據(jù)得知,隨著信號強度降低,輸出中頻波形振幅減小,并且在振幅上開始出現(xiàn)一些明顯的干擾信號,這種干擾使部分中頻波形振幅小于STM32F407輸入引腳翻轉電平,這將導致TIM5計數(shù)器遺漏一些脈沖,使計數(shù)值結果偏小出錯而產生了爆音。對此特別設計了一種簡單的整形電路,并且利用振蕩器的頻率牽引達到濾波目的。圖5是這個濾波電路和它的等效電路。
振蕩器由HEF4011集成電路和一個RC低通電路組成。HEF4011本來是一個二輸入與非門,把兩個輸入端短接在一起,看起來好像僅僅是一個非門,然而在它內部卻有三級反相器,所以可以與RC低通電路組成環(huán)形振蕩器。因為在起振時,電容兩端的電壓振幅很小,所以RC時間常數(shù)需要取大一些。用合適的取值,使它的振蕩頻率大約是1.25 MHz,之后輸入STM32F407,給STM32F407提供了一個穩(wěn)定的中頻輸入方波。再用一個電阻R17把TDA18273輸出的中頻信號送到RC電路,這樣就實現(xiàn)了把待測的中頻信號疊加到振蕩器。
本來RC振蕩器的頻率穩(wěn)定度就比較低,同時電容上的電壓振幅又很小,所以它很容易受到調頻中頻信號的牽引。這個簡單的電路保證了STM32F407的TIM5和TIM14總能可靠地獲得脈沖邊沿,并且還在中頻調頻信號的牽引作用下,失諧的RC振蕩脈沖能不斷地自動追蹤趨近于中頻信號的相位。經過實際測試,在信號強度為30 dBμV時聽不到明顯的噪聲,顯著地提高了整機的接收靈敏度。從另一個角度看,R17與C33組成了一個積分電路,對于偶然的噪聲具有抑制作用。當接收信號很小并且逐漸變弱時,實測解調得到的音量會隨之慢慢減小,但噪聲并沒有明顯增加。當信號繼續(xù)降低到與噪聲水平接近時,輸出的噪聲才開始明顯起來。
圖5 濾波及等效電路
在STM32F407上直接用LwIP設計網絡TCP服務器,并在內存中設計一個循環(huán)聲音緩沖區(qū)。一旦有TCP客戶機聯(lián)接到了服務器,就通過網絡把緩沖區(qū)中的聲音數(shù)據(jù)發(fā)給客戶機。循環(huán)聲音緩沖區(qū)邏輯結構如圖6所示。
圖6 邏輯結構圖
循環(huán)緩沖區(qū)是一塊連續(xù)的內存,在起始地址和結束地址之間保存聲音數(shù)據(jù),每次TIM13中斷都保存一個字節(jié)數(shù)據(jù)到WR指針地址上,并且指針后移一字節(jié)。當指針移動到結尾就需要重置到起始位置,與WR指針相類似,網絡從RD指針處可以讀取聲音數(shù)據(jù)并移動指針??偣灿?種可能:
① WR=RD,緩沖區(qū)中不存在有效數(shù)據(jù);
② WR>RD,緩沖區(qū)中有數(shù)據(jù),數(shù)據(jù)長度=WR-RD;
③ WR 在單片機的主程序中,按照上述邏輯分析聲音數(shù)據(jù)的緩存情況,再發(fā)到網絡上。 計算機上直接用Socket設計網絡TCP客戶端,用DirectSound設計聲音實時播放程序。從網絡接收到的數(shù)據(jù),在直接送到聲卡監(jiān)聽的同時,還要保存數(shù)據(jù)到硬盤并且加上一個WAV文件頭成為錄音文件,可以供其他聲音分析軟件調用。 本文提供了一種采用STM320F407直接測量載波瞬時頻率實現(xiàn)數(shù)字化鑒頻解調的方法,并且用STM320F407和很少的外圍元件設計了調頻廣播監(jiān)測設備進行實際測試。運用這種方法能夠減化電路設計,減少外圍元件,降低噪聲,省去信號放大處理的中間環(huán)節(jié),改善了失真。這種鑒頻方法具有誤差小、線性度好、線性范圍寬、鑒頻靈敏度高的優(yōu)點。盡管受到STM320F407結構的限制,整機還是達到了可以實用的精度。如果換用FPGA采取等精度測頻的方法進行解調,預計可以獲得更高的精度。 編者注:本文為期刊縮略版,全文見本刊網站www.mesnet.com.cn。 [1] 曾興雯,劉乃安,陳健.高頻電子線路[M].北京:高等教育出版社,2003. [2] NXP.NXP TDA18273HN Hybrid (analog and digital) Silicon Tuner for terrestrial and cable TV reception,2011. [3] NXP.NXP TDA18273 Driver User Guide,2010. [4] ST.STMicroelectronics STM32F405xx/07xx advanced ARM-based 32-bit MCUs Reference manual,2013. [5] NI.National Semiconductor DP83848C PHYTER Single Port 10/100 Mb/s Ethernet Physical Layer Transceiver,2008. [6] ST.LwIP TCP/IP stack demonstration for STM32F407/STM32F417 microcontrollers,2011. 焦杰(工程師),研究方向為廣播電視監(jiān)測技術;孫宇(高級工程師),主要從事吉林省廣播電視信號監(jiān)測工作。 Jiao Jie1,Sun Yufei2 (1.Jilin Radio&Television Research Institute,Changchun 130061,China;2.Jilin Radio&Television Monitoring Station) In the paper,a technical method which uses the fast measurement carrier frequency to demodulate the FM radio is introduced,which is mainly applied in the monitoring equipment of FM radio program.The function of the key circuit and the design points with STM32F407 microcontroller are introduced.A very simple and effective filter circuit is designed in order to improve the demodulation performance and reduce the noise.The traditional descriminator,the A/D analog digital converter and the audio amplifier are needless.The circuit has been tested in the FM radio monitoring equipment,the design achieves good results. FM boradcasting;descriminator;frequency measuring;TDA18273;STM32F407 TP37 A (責任編輯:楊迪娜2016-03-11)結 語