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