周小娟
(西安外事學(xué)院 計(jì)算機(jī)中心,陜西 西安 710077)
對(duì)非整周期正弦波形信噪比計(jì)算方法的研究
周小娟
(西安外事學(xué)院 計(jì)算機(jī)中心,陜西 西安 710077)
以雙音多頻信號(hào)為例,通過運(yùn)用快速傅里葉變換和Hanning窗等數(shù)學(xué)方法,分析了信號(hào)頻率,電平和相位之間的關(guān)系,推導(dǎo)出了計(jì)算非整周期正弦波形信噪比的算法,解決了數(shù)字信號(hào)處理中非整周期正弦波形信噪比計(jì)算精度低下的問題。以C編程語言進(jìn)行實(shí)驗(yàn),證明了算法的正確性和可重用性,并可極大的提高工作效率。
圖數(shù)字信號(hào)處理;數(shù)字正弦波形;信噪比;非整數(shù)周期
數(shù)字信號(hào)處理中對(duì)采集的正弦輸出信號(hào)的分析一般都是通過對(duì)信號(hào)進(jìn)行快速傅里葉變換來分析信號(hào)的頻率特征,如總諧波失真(THD),信噪比(SNR)等。然而,如果采集到的信號(hào)和理想情況存在誤差,它的周期不是整數(shù),就會(huì)使得快速傅里葉變換過程失真,造成分析精確度的下降。一般的,當(dāng)一個(gè)非整數(shù)周期的正弦波形在進(jìn)行快速傅里葉變換之前,會(huì)將波形末尾的信號(hào)忽略掉以便使得整個(gè)波形是一個(gè)整數(shù)的周期重復(fù),然后進(jìn)行適當(dāng)?shù)拇昂瘮?shù)處理,最后進(jìn)行快速傅里葉變換。這種對(duì)部分信號(hào)的忽略是造成分析精確度下降的主要原因。本文以雙音多頻信號(hào)為例,研究了一種當(dāng)正弦波形周期在非整數(shù)的情況下計(jì)算信噪比而不影響精確度的方法。
雙音多頻信號(hào)(DTMF)是國(guó)際電報(bào)電話咨詢委員會(huì)推薦的一種信號(hào),它由一組4個(gè)低頻和一組4個(gè)高頻的雙音組成。低頻組包括697,770,852,941 Hz+/1.8%;高頻組包括1 209,1 336,1 447,1 633 Hz+/1.8%。
圖1示例了DTMF信號(hào)的產(chǎn)生過程,一個(gè)頻率為10.24 MHz的水晶振蕩器被分為高頻和低頻兩組,正弦波形的128個(gè)信號(hào)點(diǎn)被存儲(chǔ)在ROM中,通過兩組信號(hào)中的D/A轉(zhuǎn)換器合成DTMF信號(hào)的輸出。
在老一代不基于數(shù)字信號(hào)處理的系統(tǒng)中,選擇性電平表,陷波器和其他一些設(shè)備被用來獨(dú)立地測(cè)試高頻組和低頻組的信號(hào),通過過濾基波信號(hào)把噪聲輸入一個(gè)電壓表,這樣使得噪聲的測(cè)試具有很好的精確性,但這需要很長(zhǎng)的測(cè)試時(shí)間。在一個(gè)數(shù)字信號(hào)出來系統(tǒng)中,即使使用窄帶濾波器也會(huì)發(fā)生相同的事情,較長(zhǎng)的測(cè)試時(shí)間無法發(fā)揮數(shù)字信號(hào)系統(tǒng)的優(yōu)勢(shì),因此必須研究一種計(jì)算方法能夠自動(dòng)校準(zhǔn)和消除基波分量,以提高測(cè)試精度和縮短測(cè)試時(shí)間。
圖1 DTMF信號(hào)的產(chǎn)生過程Fig.1 Generation process of DTMF signal
首先,讓我們簡(jiǎn)要地討論確定DTMF信號(hào)的頻率和電平的方法。圖2是一個(gè)采樣頻率為16 kHz的DTMF波形的輸出圖,對(duì)這個(gè)波形應(yīng)用快速傅里葉變換得到如圖3所示的頻譜,對(duì)這個(gè)波形應(yīng)用Hanning窗和快速傅里葉變換得到如圖4所示的頻譜。
圖2 采樣頻率為16 kHz的DTMF信號(hào)的波形圖Fig.2 DTMF waveform with sampling frequency at 16 kHz
圖3 對(duì)圖2應(yīng)用快速傅里葉變換后的頻譜圖Fig.3 Spectrum by applying FFT at Fig.2
圖4 對(duì)圖2應(yīng)用Hanning窗和快速傅里葉變換后的頻譜圖Fig.4 Spectrum by applying FFT and Hanning window at Fig.2
比較發(fā)現(xiàn),在圖4中DTMF信號(hào)具有是典型的Hanning窗側(cè)裂片特征,如果峰值頻譜和其向左或向右的第二高峰值可以被獲得,DTMF信號(hào)真正的頻率和電平就可以利用已有的公式計(jì)算出來。另外,利用Hanning窗的特點(diǎn)也可以精確獲得目標(biāo)信號(hào)的相位。據(jù)此,初步判斷,如果能夠充分利用圖5中的減法型失真度測(cè)試儀的結(jié)構(gòu),就有可能進(jìn)行SNR測(cè)量。
在傳統(tǒng)的失真度測(cè)試儀中,陷波濾波器是用來消除基波。在這里,一個(gè)衰減器和相位儀被用來生產(chǎn)和被測(cè)信號(hào)基波分量相同的波形。從被測(cè)信號(hào)中減去產(chǎn)生的信號(hào),就剩余諧波和噪聲,通過測(cè)量電壓就可以獲得諧波失真。圖6描述了這個(gè)過程,通過調(diào)整衰減器和相位儀器獲得諧波失真,也就可以得到信噪比。
圖5 減法型失真度測(cè)試儀的結(jié)構(gòu)Fig.5 Structure of the subtraction-type distortion meter
圖6 非整數(shù)周期正弦波形信噪比的計(jì)算過程Fig.6 Calculation process of SNR for non-integer cycle sine wave
因此,筆者基本推導(dǎo)出了計(jì)算非整數(shù)周期正弦波形信噪比的一般方法,
1)通過對(duì)測(cè)試信號(hào)應(yīng)用Hanning窗和快速傅里葉變換,測(cè)算基波信號(hào)的水平,頻率和相位;
2)通過第一步得到的信號(hào)特征,還原基波正弦波;
3)從測(cè)試信號(hào)中減去還原的基波信號(hào),得到噪音信號(hào);
4)計(jì)算噪聲信號(hào)的均方根;
5)使用步驟1)和4)的結(jié)果,計(jì)算出信噪比。
有了以上的計(jì)算方法,我們可以很方便的用編程語言來實(shí)現(xiàn)算法。以下偽代碼簡(jiǎn)要的描述了在數(shù)字信號(hào)處理中對(duì)上述計(jì)算方法的算法實(shí)現(xiàn)。
通過對(duì)雙音多頻信號(hào)應(yīng)用Hanning窗和快速傅里葉變換,分析信號(hào)的頻譜特征,計(jì)算出信號(hào)的頻率,電平和相位,推導(dǎo)并實(shí)現(xiàn)了計(jì)算非整數(shù)周期正弦波形的信噪比的算法,解決了數(shù)字信號(hào)處理中非整數(shù)周期正弦波形的信噪比計(jì)算精度低下的問題。
[1]Proakis J G,Manolakis D G.Digital xignal processing[M].方艷梅,劉永清,譯.北京:電子工業(yè)出版社,2007.
[2]Burns M,Roberts G W.Introduction to Mixed-signal IC test&measurement[M].USA:Oxford University Press,2001.
[3]Maxim Integrated Products.Coherent Sampling vs.Window Sampling[EB/OL].(2002).http://china.maxim-ic.com/app-notes/index.mvp/id/1040.
[4]李傳軍.C語言與MATLAB接口--編程與實(shí)例[M].北京:北京郵電大學(xué)出版社,2004.
[5]羅月星.Matlab與C語言程序的應(yīng)用編程接口[EB/OL].(2007).http://www.builder.com.cn/2007/1030/591033.shtml.
[6]Tabei M,Ueda M.A method of high precision frequency detection with FFT[J].IEICE,1987,70(5):708-805.
[7]parker R,Stoneman S A.On the use of fast fourier transform when high frequency resolution is required[J].J.Sound and Vibration,1986,104(1):75-79.
Methodology research of calculating SNR for non-integer cycle sine wave
ZHOU Xiao-juan
(Computer Center,Xi’an International University,Xi’an710077,China)
This article takes dual-tone multi-frequency signal as an example,analyzes the relationship between signal frequency, level and phase by applying FFT, Hanning window and other mathematical calculation method, derivates the methodology of calculating SNR for non-integer cycle sine wave and finally solves the problem of low accuracy in calculating SNR for non-integer cycle sine wave.Experiments by C programming language prove the methodology is correct,can be reused and can greatly improve efficiency.
Digital Signal Processing(DSP);sinusoidal waveform;non-integer cycle
TN453
A
1674-6236(2012)03-0142-03
2011-11-22 稿件編號(hào):201111112
周小娟(1977—),女,陜西乾縣人,碩士研究生,講師。研究方向:數(shù)字信號(hào)處理,計(jì)算機(jī)應(yīng)用。