?
??? 工程設(shè)計(jì)可以從虛擬儀器中獲得什么?即便您對(duì)虛擬儀器并不熟悉,,了解儀器如何影響工程設(shè)計(jì)也十分自然的,。例如示波器等傳統(tǒng)儀器在測(cè)試和測(cè)量應(yīng)用中的不同階段及電子系統(tǒng)的設(shè)計(jì),、驗(yàn)證和測(cè)試階段都被廣泛地應(yīng)用,。但是,憑借快速開發(fā)工具,、交互式設(shè)計(jì)功能以及與實(shí)際信號(hào)的自然關(guān)聯(lián)特性,,虛擬儀器可以將工程設(shè)計(jì)帶入到一個(gè)新的時(shí)代。
?
??? 例如數(shù)字信號(hào)處理(DSP)以及它與儀器之間的關(guān)系,。數(shù)字信號(hào)處理器,,簡(jiǎn)稱為DSP,是一種針對(duì)數(shù)字信號(hào)進(jìn)行實(shí)時(shí)數(shù)學(xué)運(yùn)算的微處理器,。要使用DSP處理模擬信號(hào),,首先要用抗鋸齒濾波器和模擬數(shù)字轉(zhuǎn)換器(ADC)對(duì)模擬信號(hào)進(jìn)行數(shù)字化,并將它送入到傳入DSP的數(shù)據(jù)流中,。之后,,DSP會(huì)以某種方式修改數(shù)據(jù)流,并通過數(shù)字模擬轉(zhuǎn)換器(DAC)以及抗假象濾波器將信號(hào)轉(zhuǎn)轉(zhuǎn)回模擬信號(hào),。通常而言,,類似示波器等傳統(tǒng)獨(dú)立儀器會(huì)使用定制的固定嵌入式DSP系統(tǒng)。除此之外,,示波器其實(shí)還可以通過虛擬儀器技術(shù)在個(gè)人電腦(PC)上實(shí)現(xiàn),。利用PC的強(qiáng)大性能,使用PCI數(shù)據(jù)采集設(shè)備對(duì)實(shí)際輸入信號(hào)進(jìn)行數(shù)字化,,然后使用PC對(duì)信號(hào)進(jìn)行處理,。這種虛擬儀器的方式可以使用戶依靠自行開發(fā)的軟件程序和在PC或者實(shí)時(shí)操作系統(tǒng)上完成自定義的儀器功能。
?
??? 虛擬儀器提供的強(qiáng)大設(shè)計(jì)工具使得具有不同技能層次和不同教育背景的人都可以快速設(shè)計(jì)并開發(fā)自定義測(cè)試和測(cè)量系統(tǒng),。相反,,過去的工程設(shè)計(jì)要求開發(fā)人員使用不相關(guān)的開發(fā)工具,還需要在領(lǐng)域設(shè)計(jì)和實(shí)現(xiàn)都具備一定的工程專業(yè)知識(shí),。本文描述了如何將虛擬儀器設(shè)計(jì)工具應(yīng)用到信號(hào)處理工程設(shè)計(jì)中,從而消除在設(shè)計(jì)和最終系統(tǒng)實(shí)現(xiàn)之間的障礙,。我們將通過研究數(shù)字信號(hào)處理的設(shè)計(jì)與發(fā)布,,并作為工程實(shí)例,來進(jìn)一步討論這個(gè)問題,。
數(shù)字信號(hào)處理與虛擬儀器
??? 首先,,我們來討論一下虛擬儀器的概念,它的出現(xiàn)是為了解決傳統(tǒng)獨(dú)立儀器的局限性,。過去,,測(cè)試和測(cè)量工具通常由例如示波器和波形發(fā)生器等獨(dú)立儀器組成,它們?yōu)橛邢薜臏y(cè)量應(yīng)用提供了有限的功能集合,。這種傳統(tǒng)儀器具有三個(gè)基本局限性:1)硬件對(duì)信號(hào)采集提供有限的精度與速度,;2)儀器中內(nèi)建的廠商定義的有限的測(cè)量與分析函數(shù),;3)用戶操作界面的局限性。如果這些局限性中有任何一點(diǎn)無法滿足項(xiàng)目規(guī)范的要求,,那么就需要一個(gè)新的獨(dú)立儀器,,這樣會(huì)大大增加最終系統(tǒng)成本。
?
??? 自1976年以來,,NI通過將傳統(tǒng)的獨(dú)立儀器分成兩個(gè)基本部分為儀器帶入了一種新的觀念,,這兩個(gè)部分是:對(duì)信號(hào)進(jìn)行數(shù)字化所需的硬件和分析顯示結(jié)果所需的軟件。允許最終用戶使用用戶定義的軟件為其應(yīng)用建立最終儀器,,這樣儀器的局限性就被解決了,,虛擬儀器的概念就是這樣誕生的。將軟件作為儀器,,儀器就可以擴(kuò)展到測(cè)試,、控制和設(shè)計(jì)中。
?
??? 相對(duì)于傳統(tǒng)的獨(dú)立儀器而言,,虛擬儀器的優(yōu)點(diǎn)與數(shù)字信號(hào)處理相對(duì)于模擬信號(hào)處理而言的優(yōu)點(diǎn)是相似的,。例如,模擬濾波器通常使用運(yùn)算放大器,、電容和電阻等模擬電子元件實(shí)現(xiàn),,相對(duì)于使用浮點(diǎn)或定點(diǎn)機(jī)器實(shí)現(xiàn)的數(shù)字濾波器而言靈活性十分有限。盡管模擬濾波器比較便宜,、易于建立,,模擬濾波器的標(biāo)定和維護(hù)十分困難。要對(duì)設(shè)計(jì)進(jìn)行修改也十分難以實(shí)現(xiàn),。例如,,如果后來發(fā)現(xiàn)需要一個(gè)更高階的濾波器,就必須改動(dòng)硬件實(shí)現(xiàn)新的設(shè)計(jì),。由于數(shù)字濾波器是用軟件建立的,,并沒有這個(gè)問題,從而在單一硬件上提供了可以實(shí)現(xiàn)多種應(yīng)用的靈活平臺(tái),。
?
??? 除了虛擬儀器和數(shù)字信號(hào)處理都發(fā)揮了基于軟件平臺(tái)的優(yōu)點(diǎn),,虛擬儀器通過利用圖形化編程開發(fā)環(huán)境NI LabVIEW使得易用性的優(yōu)點(diǎn)得到進(jìn)一步的發(fā)展,它能夠讓更多人參與到軟件開發(fā)和儀器設(shè)計(jì)中去,。LabVIEW不僅提供了完全與傳統(tǒng)的基于文本的編程語言所不同的圖形化編程方式,,使得編程過程變得更加直觀與方便,同時(shí)還通過自帶的Mathscript兼容了文本的編程語言,,使得用戶可以兼容已有的算法,,或者根據(jù)實(shí)際應(yīng)用來選擇合適的編程方式。這樣大大節(jié)省了需要熟悉編程環(huán)境和語法所需要的大量的時(shí)間。
?
??? 這也是缺乏足夠的設(shè)計(jì)工具對(duì)數(shù)字信號(hào)處理所產(chǎn)生的影響,?對(duì)于DSP工程師而言,,使用傳統(tǒng)工具實(shí)現(xiàn)基于軟件的解決方案十分痛苦。典型的開發(fā)過程從算法設(shè)計(jì)開始,,它需要使用多種數(shù)學(xué)建模環(huán)境,,這要求對(duì)基于文本的命令和語法有著足夠的熟悉程度。在完成算法之后,,嵌入式系統(tǒng)的實(shí)現(xiàn)帶來了新的困難,。嵌入式系統(tǒng)設(shè)計(jì)需要對(duì)實(shí)時(shí)處理概念、板載內(nèi)存可用性以及在軟件開發(fā)中所需的基于文本的編程語言和語法有深入的知識(shí),。
?
??? 在傳統(tǒng)的基于文本的設(shè)計(jì)工具中,,調(diào)試又是相當(dāng)困難的。如果嵌入式系統(tǒng)沒有能夠按照期望的方式進(jìn)行工作,,如何才能找出數(shù)學(xué)設(shè)計(jì)的錯(cuò)誤如何對(duì)應(yīng)到具體的嵌入式系統(tǒng)代碼呢,?例如量化、下溢出和上溢出等關(guān)于定點(diǎn)設(shè)計(jì)的問題很難進(jìn)行跟蹤,,因?yàn)樗麄兂3T趯?shí)時(shí)執(zhí)行的前幾個(gè)循環(huán)中出現(xiàn),。例如斷點(diǎn)、單步執(zhí)行,、監(jiān)視可用寄存器和變量等常用的簡(jiǎn)單調(diào)試工具是不夠的,,因?yàn)樗麄冃枰脩羯釛墝?shí)時(shí)執(zhí)行,這樣也就無法使得問題重現(xiàn),。
?
??? 在最近20年中,,來自成千上萬家公司的工程師、科學(xué)家和技術(shù)員通過使用LabVIEW加速并簡(jiǎn)化了開發(fā)過程,,LabVIEW相比傳統(tǒng)設(shè)計(jì)工具而言更加強(qiáng)大,,更加易于使用。LabVIEW具有通用編程語言所有的廣度和深度,,其易用性提高了用戶效率,,縮短了開發(fā)應(yīng)用程序所需的時(shí)間。
簡(jiǎn)化DSP設(shè)計(jì)的參數(shù)選擇
??? 以數(shù)字濾波器設(shè)計(jì)為例,,它是用NI LabVIEW和數(shù)字濾波器設(shè)計(jì)工具包進(jìn)行開發(fā)與實(shí)現(xiàn)的,。在這個(gè)應(yīng)用和其他應(yīng)用中,虛擬儀器方法的一個(gè)優(yōu)點(diǎn)是提供了交互性——可以直接看到制定修改設(shè)計(jì)參數(shù)的結(jié)果,。
?
??? 數(shù)字濾波器設(shè)計(jì)首先要為濾波器類型(低通、帶通,、帶阻和高通)定義濾波器規(guī)范,,確定是有限脈沖響應(yīng)(FIR)或是無限脈沖響應(yīng)(IIR),確定采樣速率以及浮點(diǎn)機(jī)器上所需的濾波器響應(yīng)。圖1給出了用于設(shè)計(jì)典型濾波器的交互式界面,,例如巴特沃斯,、切比雪夫、反切比雪夫,、橢圓,、凱塞窗、多爾夫—切比雪夫窗以及等波紋FIR設(shè)計(jì)方法,。圖1所示的設(shè)計(jì)是8 kHz采樣速率,、1 kHz帶通、2 kHz帶阻,、60 dB帶阻衰減的低通數(shù)字濾波器,。在設(shè)計(jì)這些參數(shù)的時(shí)候,可以立刻看到當(dāng)前設(shè)計(jì)的幅度響應(yīng)和零極點(diǎn)圖,,以及產(chǎn)生濾波器的階數(shù),。在圖1中,選擇了反切比雪夫?yàn)V波器因?yàn)樗哂休^好的過度帶特性和相對(duì)較低的濾波器階數(shù),。
?
?
圖1:典型濾波器設(shè)計(jì)Express VI提供了用于交互式設(shè)計(jì)探索的界面,,可以使用教科書中的巴特沃斯、切比雪夫以及等波紋FIR等濾波器
?
??? 基于虛擬儀器的信號(hào)處理設(shè)計(jì)所具有的另一個(gè)優(yōu)點(diǎn)是圖形化的編程方式,,類似流程圖式的圖形化編程方式使得程序更加直觀,。同時(shí),要嘗試一個(gè)新的算法只需要替換成所需要的函數(shù)圖標(biāo)即可,。例如,,反切比雪夫?yàn)V波器設(shè)計(jì)可以方便地替換成雷米茲濾波器設(shè)計(jì)方法或是最小P階規(guī)范設(shè)計(jì)方法。實(shí)際上,,在表1中所列的一系列編程設(shè)計(jì)選擇都可以用于設(shè)計(jì)中,。雷米茲設(shè)計(jì)方法生成了FIR濾波器,可以將期望頻率響應(yīng)和實(shí)際設(shè)計(jì)濾波器頻率響應(yīng)之間的最大誤差降到最小,。這種設(shè)計(jì)規(guī)范產(chǎn)生的濾波器具有“等波紋”特性,,即“切比雪夫”誤差行為。雷米茲工具產(chǎn)生的濾波器設(shè)計(jì)適用于類型I-IV線性相位,、任意形狀FIR,、最優(yōu)幅度近似(最大或最小相位)、單點(diǎn)帶規(guī)范(谷或峰)以及精確增益控制,。最小P階規(guī)范方法可以用于設(shè)計(jì)帶有任意幅度和相位約束的FIR和IIR濾波器,。使用數(shù)字濾波器設(shè)計(jì)工具包,最小P階規(guī)范方法使用牛頓法或迭代重賦權(quán)最小二乘(IRLS)法開發(fā)解決方案,。
?
表1:數(shù)字濾波器設(shè)計(jì)工具包提供了從傳統(tǒng)應(yīng)用到現(xiàn)代應(yīng)用所需的程序化的濾波器設(shè)計(jì)工具套件
?
FIR |
特殊設(shè)計(jì) | |
巴特沃斯 |
凱塞 |
IIR谷峰 |
切比雪夫 |
多爾夫—切比雪夫 |
IIR梳 |
反切比雪夫 |
加窗 |
最平濾波器 |
橢圓 |
雷米茲 |
窄帶 |
貝塞爾 |
最小P階規(guī)范 |
任意群延遲 |
最小P階規(guī)范 |
群延遲補(bǔ)償器 |
?
??? 在對(duì)定點(diǎn)濾波器進(jìn)行設(shè)計(jì)和發(fā)布的過程中,,有一種特性的重要性是不言而喻的,,就是需要能夠直接、交互式地查看設(shè)計(jì)結(jié)果,。傳統(tǒng)的通過文本軟件定點(diǎn)實(shí)現(xiàn)的方法往往效率高,、成本低,但是由于算法精度較低,,其設(shè)計(jì)過程也更為復(fù)雜,。
?
??? 使用LabVIEW和數(shù)字濾波器設(shè)計(jì)工具包,定點(diǎn)數(shù)字濾波器設(shè)計(jì)過程首先是對(duì)浮點(diǎn)濾波器進(jìn)行原型設(shè)計(jì),,并轉(zhuǎn)換成定點(diǎn)設(shè)計(jì),。轉(zhuǎn)換成定點(diǎn)設(shè)計(jì)會(huì)大大改變?yōu)V波器的特性和性能。實(shí)現(xiàn)了指定定長寄存器的整數(shù)字長,、濾波器拓?fù)涞绕渌麉?shù),,這些對(duì)于確保濾波器按照設(shè)計(jì)期望進(jìn)行工作是十分關(guān)鍵的。對(duì)定點(diǎn)設(shè)計(jì)進(jìn)行適當(dāng)?shù)姆抡婧头治隹梢员苊庵笤谡{(diào)試設(shè)計(jì)的時(shí)候,,在千萬行嵌入式系統(tǒng)代碼中進(jìn)行調(diào)試查找,。集成在VI設(shè)計(jì)環(huán)境中的定點(diǎn)建模、仿真和分析工具簡(jiǎn)化了從浮點(diǎn)設(shè)計(jì)到定點(diǎn)設(shè)計(jì)之間的過渡,。
?
??? 另外一個(gè)使得定點(diǎn)數(shù)字濾波設(shè)計(jì)非常困難的原因是,,參數(shù)量化、中間運(yùn)算和結(jié)果向系統(tǒng)引入了噪聲,。此外,,如果在數(shù)據(jù)存儲(chǔ)中沒有足夠的空間,就會(huì)發(fā)生上溢出,。LabVIEW數(shù)字濾波器設(shè)計(jì)工具包中的定點(diǎn)建模,、仿真和分析功能能夠在設(shè)計(jì)階段找出實(shí)現(xiàn)的錯(cuò)誤源頭。例如,,對(duì)于圖1設(shè)計(jì)的低通濾波器進(jìn)行定點(diǎn)實(shí)現(xiàn),。用戶使用定點(diǎn)建模VI,就可以在多個(gè)設(shè)計(jì)方案中選擇定點(diǎn)系統(tǒng),、指定字長,、整數(shù)字長以及設(shè)計(jì)中關(guān)鍵位置的舍入和溢出模式。為了對(duì)最終實(shí)現(xiàn)進(jìn)行進(jìn)一步控制,,還提供了超過23種不同的濾波器拓?fù)?,從FIR直接形式1到IIR級(jí)聯(lián)二階部分(形式I或II、轉(zhuǎn)置),,直至網(wǎng)格ARMA(基本,、一個(gè)乘法器或歸一化部分)。
?
??? 圖2展示了包含選擇濾波器拓?fù)?、定點(diǎn)設(shè)計(jì)工具以及用于定點(diǎn)和浮點(diǎn)設(shè)計(jì)仿真與分析的范例VI,。這個(gè)VI提供了能夠隨著仿真運(yùn)行對(duì)實(shí)現(xiàn)參數(shù)進(jìn)行交互式修改的接口,。首先,可以保持定點(diǎn)建模參數(shù)不變,,使用默認(rèn)的濾波器拓?fù)洌褂谜龖B(tài)分布的白噪聲信號(hào)作為濾波器輸入,,測(cè)試濾波器在所有頻率下的響應(yīng),。圖3給出了仿真結(jié)果。很明顯,,定點(diǎn)濾波器并沒有給出與浮點(diǎn)仿真相同的結(jié)果,,盡管設(shè)計(jì)的濾波器具有幾乎相同的幅度、相位和零極點(diǎn)圖,。濾波器分析報(bào)告指出由于在乘法,、加法、延遲中產(chǎn)生了上溢出和下溢出,,因此得到的結(jié)果不夠理想,。利用在VI環(huán)境中給出的信息,用戶可以對(duì)定點(diǎn)實(shí)現(xiàn)進(jìn)行運(yùn)行時(shí)修改,,例如增加問題區(qū)域中的整數(shù)字長,、嘗試其他濾波器拓?fù)浠蚴切薷亩c(diǎn)建模的其他屬性。對(duì)于這個(gè)設(shè)計(jì)而言,,提高乘法,、加法和延遲的整數(shù)字長就可以得到希望的定點(diǎn)設(shè)計(jì)結(jié)果,如圖4所示,。
?
?
圖2:程序框圖展示了濾波器的設(shè)計(jì),,可以修改濾波器拓?fù)洹⒄麛?shù)字長,、對(duì)正態(tài)分步的白噪聲進(jìn)行定點(diǎn)和浮點(diǎn)設(shè)計(jì)仿真以及仿真分析
?
?
圖3:前面板顯示了定點(diǎn)濾波器設(shè)計(jì)和浮點(diǎn)濾波器設(shè)計(jì)的幅度,、相位和零極點(diǎn)圖特性以及仿真結(jié)果和第一個(gè)測(cè)試的分析
?
圖4:根據(jù)在濾波器分析報(bào)告中提供的信息,增加了加法,、乘法和延遲的整數(shù)字長,,現(xiàn)在定點(diǎn)設(shè)計(jì)和浮點(diǎn)設(shè)計(jì)的仿真結(jié)果能夠匹配
設(shè)計(jì)驗(yàn)證與發(fā)布
??? 虛擬儀器通過與測(cè)試測(cè)量應(yīng)用中所需的硬件自然整合在一起,改進(jìn)了工程設(shè)計(jì),。在上述數(shù)字濾波器設(shè)計(jì)中,, PCI數(shù)據(jù)采集設(shè)備能夠獲得實(shí)際信號(hào),將它與仿真信號(hào)進(jìn)行比較,,就更加能確保濾波器設(shè)計(jì)的正確性,。由于LabVIEW與NI以及眾多第三方廠家的數(shù)據(jù)采集硬件緊密整合,這點(diǎn)在工程設(shè)計(jì)中又是一個(gè)重要的優(yōu)點(diǎn),。
?
??? 許多測(cè)試與測(cè)量應(yīng)用需要具有能夠在包括實(shí)時(shí)系統(tǒng)與嵌入式系統(tǒng)在內(nèi)的多平臺(tái)之間的可移植性,。這點(diǎn)又是與工程設(shè)計(jì)相關(guān)的,,其中VI需要可以被用于各種通用操作系統(tǒng),包括Windows,、Mac,、Linux,以及支持LabVIEW的FPGA,、DSP和任何32位微處理器等嵌入式系統(tǒng),。數(shù)字濾波器設(shè)計(jì)工具包是LabVIEW的一個(gè)附件,它提供了定點(diǎn)建模工具和LabVIEW FPGA以及ANSI-C代碼生成,。DSP工程師現(xiàn)在可以利用LabVIEW的強(qiáng)大功能進(jìn)行完整的數(shù)字濾波器開發(fā),,從設(shè)計(jì)到驗(yàn)證直至嵌入式系統(tǒng)發(fā)布。
?
??? 數(shù)字濾波器設(shè)計(jì)工具包為學(xué)術(shù)應(yīng)用和工業(yè)應(yīng)用都提供了發(fā)布方案,。一種是將濾波器參數(shù)保存到文件中,,這也是最簡(jiǎn)單的發(fā)布方式,它將所有實(shí)現(xiàn)細(xì)節(jié)保存到文件中,,供以后使用,。使用LabVIEW DSP模塊,可以讀取過去保存在文件中的濾波器參數(shù),,并在DSP上實(shí)時(shí)實(shí)現(xiàn),。LabVIEW DSP將圖形化編程帶入到多個(gè)硬件平臺(tái)上,能夠廣泛地應(yīng)用于學(xué)術(shù)中,,其中包括了NI SPEEDY-33和Texas Instruments C6711,、C6713、C6416 DSK,,用于對(duì)DSP進(jìn)行設(shè)計(jì),、快速原型開發(fā)和發(fā)布。它很好地支持了快速VI(Express VIs),可以加速開發(fā)速度,,能夠?qū)Π蹇ㄉ系哪M及數(shù)字IO進(jìn)行直接存取,,并支持圖形編程環(huán)境的調(diào)試。
?
??? 另一種方案是FPGA發(fā)布,,數(shù)字濾波器設(shè)計(jì)工具包能根據(jù)定點(diǎn)數(shù)字濾波器設(shè)計(jì)生成LabVIEW FPGA代碼,,并在LabVIEW FPGA模塊中使用生成的代碼,它利用Xilinx編譯器直接同步位于NI可重配置I/O(RIO)硬件上的FPGA。具有RIO技術(shù)的設(shè)備有著多種外形規(guī)格,包括PCI,、PXI以及CompactRIO可編程自動(dòng)化控制器,。LabVIEW FPGA提供了在數(shù)字濾波器應(yīng)用中 對(duì)數(shù)字I/O線路和模擬I/O線路的直接訪問,。
?
??? ANSI-C代碼生成是另一種發(fā)布數(shù)字濾波器設(shè)計(jì)的選擇。LabVIEW嵌入式開發(fā)模塊利用第三方嵌入式工具鏈和操作系統(tǒng),能對(duì)LabVIEW生成的C代碼進(jìn)行編譯,、連接,,并下載到任何32位微處理器目標(biāo)中,。使用LabVIEW嵌入式模塊,您可以在前面板和程序框圖中交互式地調(diào)試程序,,訪問板卡的外圍I/O,,使用任何用于嵌入式應(yīng)用的1000個(gè)內(nèi)置數(shù)字處理和信號(hào)處理VI。
圖5:LabVIEW DSP,、LabVIEW FPGA和LabVIEW嵌入式模塊將圖形化編程的強(qiáng)大功能引入到無限的硬件平臺(tái)中
?
??? 虛擬儀器是用于測(cè)試和測(cè)量系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn)的可行方法,。虛擬儀器思想所采用的獨(dú)特方法可以應(yīng)用到工程設(shè)計(jì)應(yīng)用和信號(hào)處理開發(fā)中,并且實(shí)現(xiàn)在理論設(shè)計(jì),、分析測(cè)試與發(fā)布實(shí)現(xiàn)中使用同一工具。
?
?
?