基于單片機(jī)技術(shù)的正弦波波形失真度控制
1 正弦波的失真度
設(shè)所生成的一個正弦波為A,其功率為P,它包含的諧波分量為A1,A2,……An,其相應(yīng)的功率分別是P1,P2,……Pn,那么正弦波失真度r定義為:
我們研制的磁耦合非接觸式溫度傳感器是靠正弦波進(jìn)行非接觸傳遞信號的,該正弦波的頻率大小代表某一溫度值,因此對正弦波發(fā)生器發(fā)出的正弦波的失真度有很高的要求。因為其諧波分量的存在(即便進(jìn)行了濾波),還足以產(chǎn)生一個不存在的溫度值,從而導(dǎo)致錯誤的測量和錯誤的控制。
正弦波的失真度可用“正弦波失真儀”來測量。
2 單片機(jī)正弦波發(fā)生器
采用查表方式的單片機(jī)正弦波發(fā)生器的工作原理如下:
(1)對正弦信號進(jìn)行采樣,設(shè)正弦波一個周期采樣點數(shù)共N點。參見公式(1)
式中n=0,1,……N-1
考慮到正弦函數(shù)數(shù)值范圍從-1→0→+1,將它們轉(zhuǎn)化為定點無符號數(shù)值存放,如存放的位數(shù)M取8,那么對公式(1)進(jìn)行數(shù)值遷移,參見公式(2)
這樣正弦函數(shù)值范圍-1→0→+1,存放的8位(即M)二進(jìn)制數(shù)據(jù)便相應(yīng)為0→128→255(以十進(jìn)制表示)。依次對公式(2)采樣可得X(n),n=0,1,……N-1,共N個數(shù)據(jù),組成一張正弦數(shù)據(jù)表,固化在EPROM中。
(2)編制查表程序,從頭到尾依次取出數(shù)據(jù),再由D/A芯片輸出轉(zhuǎn)變成模擬量,—個完整的正弦波便產(chǎn)生了。設(shè)從表中每取一個數(shù)據(jù),并將它從D/A芯片輸出至少需要時間為ts,那么輸出一個完整的正弦波需要的時間為TM,且TM=ts*N。
(3)查表程序周而復(fù)始進(jìn)行下去,便可實現(xiàn)連續(xù)的正弦波輸出。
3 采樣點數(shù)N對失真度的影響
微機(jī)化正弦波發(fā)生器是用N個依次以正弦變化的數(shù)值來驅(qū)動D/A芯片而產(chǎn)生“正弦波”的。每輸出一點X(n),需要的最小時間為ts,那么一個完整的正弦波(即一周)需要的時間為TM,且TM=ts*N。此時正弦波的最高頻率為
設(shè)編制的子程序ts約為1μs,如N取200,則fmax,亦即如果要求輸出正弦波的頻率f大于4998Hz,只能使N小于200。所以可以得出定性的結(jié)論:N越大,正弦波的失真度越小,但正弦小限fmax也下降。
本文提出一個數(shù)字化正弦波“波形精度”R這一概念,R的定義為:
定義“波形精度”R的理由如下:
微機(jī)化正弦波是取出正弦波表格中的數(shù)值,由D/A輸出產(chǎn)生階躍狀的模擬量正弦波。顯然,正弦波表格中的數(shù)據(jù)值直接影響階躍狀正弦波的形狀。“波形精度”R是對正弦波表格數(shù)據(jù)優(yōu)劣的一種描述,它應(yīng)該等價于“失真度”對模擬正弦波的描述。
根據(jù)理想采樣的規(guī)則,數(shù)據(jù)X(n)點與點之間的采樣時間間隔是恒定的,即上面的ts,亦即X(n)序列在時間上是均勻分布在正弦波上的N個點的采樣值。由于N是有限的,所以這些點不能組成光滑的正弦波,而是有落差ΔR的,且ΔR=X(n)-X(n-1),它的大小反映了曲線的不光滑度(和失真度對應(yīng))。正弦波的斜率變化最大在n=0處,所以ΔRmax=X(1)-X(0)。用相對誤差的概念,便得“波形精度”R。下面分別用公式(4)定量計算N=200,N=100的波形精度R200和R100:
顯然R200<R100,N=200相比N=100而言其階躍狀正弦波更趨向于光滑的理論值。
4 量化誤差對正弦波失真度的影響
對正弦波的采樣值X(n)而言,必須用有限位(M位)二進(jìn)制數(shù)值來表示。它和理論的正弦值之間存在著量化誤差。量化誤差的存在直接影響正弦波的失真度,因為采樣值X(n)實際并不落在理論正弦值曲線上,兩者之間的差即量化誤差。顯然,M越大,量化誤差越小,X(n)越趨向于理論正弦值,從而產(chǎn)生的實際正弦波失真度也越小。至于量化誤差對正弦波失真度影響的定量計算本文不再展開。其結(jié)論是:
M的取值應(yīng)該和D/A芯片的字長相一致。當(dāng)選用的D/A芯片是8位字長時,它的數(shù)據(jù)管腳D0~D7也一共8位,正弦數(shù)據(jù)表格存放位數(shù)M也應(yīng)是8位,以便數(shù)據(jù)傳送時位與位之間一一對應(yīng)。此時用12位、16位存放正弦表格毫無意義。
5 小結(jié)
為了使微機(jī)化正弦波發(fā)生器發(fā)出高品質(zhì)的正弦波,設(shè)計時可在下列幾方面給予關(guān)注:
(1)盡可能提高單片機(jī)的晶振頻率,編制采樣D/A輸出的子程序盡可能簡潔,這樣運行時間ts便減小,高品質(zhì)正弦波的頻率上限fmax可提高;
(2)在滿足最高頻率的條件下,取盡可能大的N,即正弦表格的采樣點數(shù)盡可能大,使產(chǎn)生的實際正弦波失真度減小;
(3)在考慮成本的基礎(chǔ)上,選用轉(zhuǎn)換速度快、字長大的D/A芯片,這樣會減小量化誤差,從而減小失真度。
參考文獻(xiàn)
[1]嚴(yán)雋道.回轉(zhuǎn)物體內(nèi)溫度的非接觸測量及控制[J].中國紡織大學(xué)學(xué)報,1982,(2).