基于DDS的8051F330囀音信號發(fā)生器
1 引言
囀音指純音信號在某一中心頻率處所發(fā)生音調(diào)高低的連續(xù)周期性變化,是一種調(diào)頻信號,聽起來不像純音信號的調(diào)高一成不變。在聽力學(xué)測試中,應(yīng)用囀音有兩個方面的優(yōu)點:一是囀音更能引人注意。并提高小兒對聲音的興趣;二是應(yīng)用囀音可減少駐波的產(chǎn)生,從而成為一種重要的測試聲。傳統(tǒng)產(chǎn)生囀音的系統(tǒng)采用集成電路。因其強度和頻率的可調(diào)性差,結(jié)構(gòu)復(fù)雜,從而提出了一種結(jié)構(gòu)簡單,可調(diào)性較高的囀音發(fā)生器。該發(fā)生器基于DDS造波原理,并利用軟件編程,采用8051單片機作為主控制器來實現(xiàn)。
2 囀音信號發(fā)生器的原理
2.1 囀音波形的簡化處理
頻率調(diào)制是用低頻調(diào)制信號控制高頻載波頻率信號的過程。調(diào)頻過程中載波幅值保持不變,載波頻率隨調(diào)制信號的幅值成正比變化。囀音實質(zhì)上就是一調(diào)頻波,即用5 Hz正弦波作為調(diào)制波,以調(diào)制更高頻率的正弦載波而得到的信號,其整合過程如圖1a所示。正弦載波的公式為:
sin[(ω0+msin(ωo,t1))t2] (1)
式中:ω0為載波角頻率;ωc為調(diào)頻波角頻率;m為調(diào)頻系數(shù),按實際選取,以確定調(diào)頻波頻率范圍;t1,t2為不同時間值。但在利用式(1)構(gòu)造囀音波形時無法確定t1,t2的取值,所以這種方法不可取。
由式(1)可知,msin(ωct1)的取值范圍為[-m,m],中心頻率為ω0時,其調(diào)制波信號的頻率范圍為[ω0-m,ω0+m]。中心頻率確定的囀音信號波形由上截止頻率、下截止頻率和中間頻率的純音波形構(gòu)成。根據(jù)囀音波形的構(gòu)造特點,對其簡化處理,將組成囀音波形的純音信號按頻率低到高依次排列,即可得圖1b所示的簡化波形。由圖1b可知,頻率為ω的囀音信號可由角頻率ω0~ω3的純音信號依次進行銜接構(gòu)成。該信號發(fā)生器的主要設(shè)計思路是以上述原理為依據(jù).首先構(gòu)造出單個頻率的純音信號所對應(yīng)的一個周期波形,然后將上述4種角頻率的單周期純音信號進行積木式疊加.最后輸出這一整塊積木,進而得到對應(yīng)頻率的囀音信號。
2.2 DDS技術(shù)簡介
圖2給出DDS原理框圖。在對信號數(shù)字合成時,從初始相位開始,每隔固定時間以一定的相位增量改變一次相位.并將對應(yīng)的信號幅值寫入D/A轉(zhuǎn)換器。通過相位累加器在固定參考時鐘的控制下累加實現(xiàn)相位的改變。累加器溢出后完成一個周期的相位改變,D/A轉(zhuǎn)換器輸出一個周期的階梯信號,以通過低通濾波器得到平滑的輸出信號。通過改變相位增量(簡稱頻率字)來改變累加器的溢出速度,從而實現(xiàn)對輸出頻率的調(diào)節(jié)。
式中;f0為輸出頻率信號;fs為參考時鐘頻率,反映波形離散點的發(fā)送速率;k為頻率字;n為相位累加器字長;△f為輸出信號頻率分辨率。
通常按查表法進行相幅轉(zhuǎn)換。由于波形數(shù)據(jù)有限,一般只能取相位累加器的高位m作為查表指針。后位(n—m)可視為小數(shù)部分,在下次求和時予以累計。該信號發(fā)生器中所應(yīng)用的與固定頻率純音信號對應(yīng)的一個周期的波形就是根據(jù)上述原理構(gòu)造的。由式(2)知,k=2nfo/fs。當系統(tǒng)要輸出fo純音信號時。因系統(tǒng)中fs固定,待選定相位累加字長后,即可通過上式求得對應(yīng)的頻率字K,這就是通常意義上的步長。
2.3 硬件電路設(shè)計
該發(fā)生器采用8051F330單片機作為主控制器:采用外部晶振11.059 2 MHz作為振蕩器:將P01口配置為模擬輸出,并作為D/A轉(zhuǎn)換器的輸出口。以1.2 V為基準,通過OP07對信號電壓放大:通過TIPl22和TIPl27組合成推挽方式對信號電流放大,以驅(qū)動耳機,產(chǎn)生人耳能識別的囀音。OP07是一種精密、低噪聲和低漂移的運算放大器,內(nèi)部有短路保護機制,用以防止負載短路時損壞器件。二極管VD3,VD4用來向TIPl22和TIPl27提供偏置電壓,以消除交越失真。為了消除電源信號中的高頻噪聲,采用RC高通濾波器電路和低通濾波電路對系統(tǒng)中的高、低頻噪聲進行信號處理。圖3給出系統(tǒng)硬件電路圖。
2.4 軟件設(shè)計
2.4.1 上位機編程
CVI作為一個用于建立自動測試系統(tǒng)的理想軟件開發(fā)系統(tǒng),提供了大量用于信號分析和處理的函數(shù),極大地滿足了工程人員的需要。CVI中信號的產(chǎn)生庫位于Library-Advanced Analysis-Signal Generation下,可以產(chǎn)生沖擊、脈沖、斜坡、正弦、噪聲及三角波等信號,利用數(shù)學(xué)方法產(chǎn)生所需信號的離散數(shù)據(jù)序列。
//產(chǎn)生一個正弦信號波形數(shù)據(jù),并把數(shù)據(jù)存放在sine[]數(shù)組中。phase:初始相位值。若要產(chǎn)生正弦信號。則相位值為90°,默認值為0;sine[]:輸出波形數(shù)組,離散數(shù)值存放在該數(shù)組中。
2.4.2 下位機編程
下位機采用C語言中嵌入?yún)R編語言方式輸出波形,既可利用C語言控制方便和形象化的優(yōu)點,也可利用匯編語言清晰簡潔的工作流程,提高DDS的參考頻率。
2.5 可調(diào)性控制
2.5.1 強度控制
通過設(shè)置IDAOH將D/A轉(zhuǎn)換器的滿程輸出電流,配置為2 mA,結(jié)合P01口外接電阻可知,該I/O口的最大輸出電壓為2x10-3V。由上述可知,改變囀音強度的方法有:①配置D/A轉(zhuǎn)換器,使POI口的輸出滿程電流為1 mA;②改變電阻R;③設(shè)置一個小于1的系數(shù)m,將其與存放囀音幅值的數(shù)組X[n]相乘,這就相當于改變了波形采樣中的最大幅值。
2.5.2 頻率控制
中心頻率不同的囀音信號對應(yīng)不同的高截止頻率和低截止頻率,通過輸出構(gòu)成不同囀音信號的單周期純音信號,以達到控制頻率的目的。
3 擴展與優(yōu)化
對該系統(tǒng)進行擴展時.可將信號對應(yīng)的全部幅值存儲在單片機中,通過D/A轉(zhuǎn)換器輸出所要求的聲音。由于單片機存儲容量的局限性,大大限制了可存儲的最大數(shù)據(jù)量。但是,可根據(jù)需求采用適當?shù)拇鎯ζ饔枰詳U展。但在利用外部存儲器時,應(yīng)注意若硬性提高DDS參考周期,會限制可產(chǎn)生囀音的最大頻率。
4 實驗結(jié)論
設(shè)定以5 dB為步進的衰減,即可由201g(U/U1)=5(U為輸出電壓;U1為輸入電壓)得到電壓的衰減系數(shù)為10025,t通過在衰減前的電壓乘以該系數(shù)即可獲得要輸出的聲音強度。經(jīng)過測試,該系統(tǒng)的精度值可達到1 dB。表1給出步進5 dB所對應(yīng)的電壓值。
5 結(jié)語
該系統(tǒng)設(shè)計精度高,雜音少,結(jié)構(gòu)簡單,成本較低,利用軟件編程即可實現(xiàn)dB檔的衰減,大大簡化系統(tǒng)的硬件電路設(shè)計。利用軟件編程使其具有良好的復(fù)制性,無需改動硬件電路就可用作其他聲音信號發(fā)生器,同時還可方便地擴展。