僅用一臺虛擬儀器在LabView中創(chuàng)建掃頻正弦函數(shù)
當(dāng)您需要在很寬的頻率范圍測試某種產(chǎn)品時(shí),掃頻正弦波很有用。例如某個(gè)大型研究項(xiàng)目需要確定波浪在遠(yuǎn)洋的傳播方式,則該應(yīng)用需要生成掃頻正弦波,以便驅(qū)動聲波換能器。雖然許多波形發(fā)生器都有內(nèi)置的函數(shù)來滿足這一要求,但您如果希望用多功能數(shù)據(jù)采集卡來實(shí)現(xiàn)正弦掃頻的話,就必須親自對它編程。僅憑一臺虛擬儀器(VI),您就能在National Instruments公司的LabView中創(chuàng)建掃頻正弦函數(shù)。利用該函數(shù),可以控制起始頻率和終止頻率、采樣率,以及掃頻的總時(shí)長(圖1)。
圖1 僅用一臺LabView虛擬儀器,您就能控制起始頻率、終止頻率、采樣率,以及掃頻總時(shí)長。
LabView軟件對某個(gè)數(shù)組執(zhí)行計(jì)算,該數(shù)組代表了頻率增加或降低時(shí)(取決于掃頻方向),每個(gè)樣本點(diǎn)的掃頻正弦波時(shí)間數(shù)列。您必須逐點(diǎn)處理輸出的頻率變化。方程的基本形式為Y(I)=V×sin((A×I2)/2+B×I),其中Y(I)是掃頻正弦波的振幅,是樣本點(diǎn)的函數(shù);I是隨時(shí)間數(shù)列變化的整數(shù);V是峰值電壓;A和B是變量。把A定義為2×π(fSTOP–fSTART)/N,把B定義為2×πfSTART,其中N是樣本數(shù)量,fSTART是歸一化起始頻率,fSTOP是歸一化終止頻率。為使起始頻率和終止頻率歸一化,必須把單位換算成每樣本的周期數(shù)。換算方法是把f1和f2頻率(單位:赫茲)除以采樣率。采樣率的確定取決于您希望表現(xiàn)的掃頻正弦波的光滑程度。一條不錯(cuò)的經(jīng)驗(yàn)法則是最高頻率的采樣率至少為每周期10個(gè)樣本。在設(shè)置采樣率時(shí),您需要考慮自己正在掃頻的頻率總跨度以及掃頻本身的時(shí)長??梢园袻abView數(shù)據(jù)采集系統(tǒng)所做的掃頻正弦波實(shí)現(xiàn)與任意波形發(fā)生器(AWG)在結(jié)果和性能方面做比較,這也會有幫助。
應(yīng)使用兩種比較方法。首先,在頻譜分析儀上對數(shù)據(jù)采集系統(tǒng)與AWG掃頻正弦波的輸出做比較。然后,把二者輸入到某個(gè)音頻放大與揚(yáng)聲系統(tǒng),并聽一聽輸出效果。該方法在確定掃頻速率、時(shí)長、起始頻率和終止頻率方面很有用。只有當(dāng)相關(guān)頻率位于聽得見的范圍內(nèi)時(shí),這類比較才有效。LabView VI采用簡單的數(shù)組運(yùn)算,并使用了一個(gè)“for”循環(huán)。輸入時(shí)長單位為秒,采樣頻率單位為樣本/每秒,起始頻率和終止頻率單位為赫茲。對采樣率做除法,就可立即把起始頻率和終止頻率換算為周期/樣本。一個(gè)最大值/最小值塊把歸一化的起始頻率和終止頻率作為輸入,并使用這個(gè)輸入對應(yīng)的最大輸出。在給定需要的采樣率和最高頻率時(shí),可用該方法來確定設(shè)計(jì)方案是否符合奈奎斯特準(zhǔn)則。
該方法驅(qū)動一個(gè)簡單的布爾變量來提示用戶,設(shè)計(jì)是否符合奈奎斯特準(zhǔn)則。您可把“for”循環(huán)的運(yùn)行次數(shù)設(shè)為您希望計(jì)算的樣本總數(shù)。該值的確定方法是用時(shí)長(單位:秒)乘以采樣率(單位:樣本/秒)。為保證循環(huán)處理了產(chǎn)生的所有樣本,您必須加1,這是因?yàn)檠h(huán)在N-1處停止。
可用簡單的代數(shù)運(yùn)算符號和正弦塊來實(shí)現(xiàn)“for”循環(huán)中的輸出函數(shù)。輸出值是一個(gè)到達(dá)了“for”循環(huán)邊緣的數(shù)組。應(yīng)在該節(jié)點(diǎn)啟用循環(huán)計(jì)數(shù),這很重要。該行動使電路能在“for”循環(huán)的輸出端逐個(gè)處理數(shù)組中的每個(gè)元素。也可添加一個(gè)簡單的增益級,來把峰值設(shè)定到您希望的任何一點(diǎn)。最后,如果終止頻率低于起始頻率,那么您可使用“旋轉(zhuǎn)一維數(shù)組塊”分支結(jié)構(gòu)(case structure)來使數(shù)組反轉(zhuǎn)。在該方法處理的分支中,掃頻在較高頻率開始,并下降到較低頻率。
您可以很輕松地修改和擴(kuò)充這個(gè)簡單的程序。一個(gè)辦法是用輸出數(shù)組(它只是一個(gè)時(shí)間數(shù)列,代表某個(gè)預(yù)先描述的掃頻)來給循環(huán)提供數(shù)據(jù),后者將驅(qū)動數(shù)據(jù)采集模塊。只要模塊的輸出采樣率等于您用來生成掃頻時(shí)間數(shù)列的采樣率,模塊的輸出就應(yīng)準(zhǔn)確代表這次掃頻。然后,您就應(yīng)該能夠跟蹤輸出樣本,并且在它們齊備時(shí)把掃頻數(shù)組反轉(zhuǎn)。然后,把反轉(zhuǎn)所得的新數(shù)組提供給數(shù)據(jù)采集模塊。也許很難足夠迅速地反轉(zhuǎn)數(shù)組并配置模塊,以便不遺漏樣本,這取決于您使用的最大頻率、最小頻率、掃頻時(shí)長、采樣率。在這種情況下,您可以根據(jù)設(shè)定的通過次數(shù)來預(yù)填一個(gè)掃頻數(shù)組。
這些修改使掃頻能來回持續(xù)一段給定時(shí)間。另一項(xiàng)改進(jìn)是添加實(shí)時(shí)快速傅里葉變換(FFT)功能,使用戶能看到頻域中的掃頻。該方法還使電路更有可能符合掃頻的定義。
評論