『壹』 基於LabVIEW的虛擬示波器,大四畢業設計的論文
文
摘
隨著計算機技術的發展,傳統儀器開始轉向計算機化。虛擬儀器是現代計算機技術、儀器技術以及其他新技術完美結合的產物,其強大的功能已完全超出了儀器概念本身。本文首先敘述了虛擬儀器的概念、發展、組成等,接著採用圖形化編程軟體Labview設計了虛擬示波器以及它的虛擬頻譜分析功能,重點介紹了Labview中使用第三方板卡——研華PCL-812PG實現外部模擬信號採集的方法。最後總結了本文所做的主要工作並提出了進一步研究的設想:虛擬儀器在internet網中的遠程測控。
關鍵詞:
虛擬儀器、PCL-812PG、Labview.
Abstract
With the development of computer, traditional instrument has developed into computerize instrument. Virtual Instrument is a perfect combination of modern computer technology, instrument technology and other new technology. Its strong function is beyond the instrument itself. This paper first introce the development, concept, form of the virtual instrument, design the virtual scope, virtual-frequency-analysis instrument by using the programming software Labview, then gather the analogue signal outsides by PCL-812PG, transferred into digital signal, show in the computer. At last, this paper put forward the further research: the distance-usage of the virtual instrument in the internet.
Keywords:
Virtual Instrument、PCL-812PG、Labview.
目
錄
第一章
緒論
1. 1
虛擬儀器的概述----------------------------------------------(1)
1. 2
軟體開發工具的簡介----------------------------------------(1)
1. 3
本文的主要工作----------------------------------------------(2)
第二章
虛擬示波器的實現
2. 1
圖形化的編程語言Labview---------------------------------(3)
2. 2
虛擬示波器實時波形顯示界面的實現和框圖程序-----(3)
2. 3
快速傅立葉變換(FFT)和Labview分析庫中的FFT VI-(6) 2. 4
虛擬頻譜分析功能軟面板和方框圖的實現--------------(7)
第三章
音效卡的作用和主要技術參數
3. 1
音效卡的作用-------------------------------------------------(10)
3. 2
音效卡的主要技術參數--------------------------------------(10)
3. 3
LabVIEW中相關音效卡操作函數簡介------------------(10)
四章 實驗分析結果
4. 1
實驗設備-------------------------------------------------------(14)
4. 2
實驗內容-------------------------------------------------------(14)
4. 3
實驗步驟-------------------------------------------------------(14)
第五章 結束語----------------------------------------------------------(16)
參考文獻--------------------------------------------------------------------(17)
第一章
緒論
隨著計算機技術的發展,傳統儀器開始向計算機化的方向發展。虛擬儀器是20世紀90年代提出的新概念,是現代計算機技術,儀器技術及其他新技術完美結合的產物。虛擬儀器技術的提出與發展,是21世紀自動測試與電子測量儀器技術發展的一個重要方向。
1. 1
虛擬儀器的概述
虛擬儀器是現代技術與計算機技術結合的產物。隨著計算機技術特別是計算機的快速發展,CPU處理能力的增強,匯流排吞吐能力的提高以及顯示器技術的進步,人們逐漸認識到,可以把儀器的信號分析和處理、結果的表達與輸出功能轉移給計算機來完成。這樣,可以利用計算機的高速計算能力和寬大的顯示屏更好地完成原來的功能。如果在計算機內插上一塊數據採集卡,就可以把傳統儀器的所有功能模塊都集中在一台計算機中了,而軟體就成了虛擬儀器的關鍵,任何一個使用者都可以通過修改虛擬儀器的軟體來改變它的功能,這就是美國NI公司「軟體就是儀器」一說的來歷[1]。
所謂虛擬儀器,就是在通用的計算機平台上定義和設計儀器的功能,用戶操作計算機的同時就是在使用一台專門的電子儀器。虛擬儀器以計算機為核心,充分利用計算機強大的圖形界面和數據處理能力,提供對測量數據的分析和顯示功能。虛擬儀器的最大特點是其靈活性,用戶在使用過程中,可以根據需要添加或刪除儀器功能,以滿足各種需求和各種環境,並且突破了傳統儀器在數據處理、表達、傳送以及存儲方面的限制。
虛擬儀器的組成與傳統儀器一樣,由數據採集與控制、數據分析與處理、結果顯示三部分組成。對於傳統儀器,三部分幾乎均由硬體完成,對於虛擬儀器,後兩部分主要由軟體來實現。與傳統儀器相比,虛擬儀器設計日趨模塊化、標准化,設計的工作量和復雜性都大大減小。
1. 2
軟體開發工具的簡介
應用軟體開發環境是設計虛擬儀器所必需的軟體工具。應用軟體開發環境的選擇,可以開發人員的喜好不同而不同,但最終都必須提供給用戶一個界面友好、功能強大的應用程序。軟體在虛擬儀器中處於重要的地位,它肩負著對數據進行分析處理的任務,如數字濾波,頻譜變換等。通常在編制虛擬儀器軟體時,有兩種方法:一種是傳統的編程方法,採用高級語言,如VC、C++,C++ Buider;另一種是採用流行的圖形化編程方法,如採用NI公司的labview。這次的畢業設計我主要是採用labview編程方法,因為它是圖形化的編程語言,界面形象直觀,有很多按鈕、控制項可以直接用來表示實際的儀器。虛擬儀器系統的軟體主要包括儀器驅動程序、應用程序和軟面板程序。儀器驅動程序主要用來初始化虛擬儀器,設定特定的參數和工作方式,使虛擬儀器保持正常的工作狀態。應用程序主要對採集來的數據信號進行分
(1)
析處理,用戶可以根據編制應用程序來定義虛擬儀器的功能。軟面板程序用來提供與虛擬儀器的介面,它可以在計算機屏幕上生成一個和傳統儀器相似
的圖形界面,用於顯示測量和處理的結果;另一方面,用戶也可以通過控制軟面板上的開關和按鈕,模擬傳統儀器的操作,通過鍵盤和滑鼠,實現對虛擬儀器系統的控制。
1. 3
本文的主要工作
數字示波器是實驗、教學、科研中常用的電子儀器,可以採集信號並進行分析,但傳統儀器都具有設備更新慢、功能單一、價格貴等缺點。本文主要是實現虛擬示波器的功能:從外界采樣模擬信號,轉化為相應的數字信號,在計算機上實現波形的顯示,並能夠進行簡單的波形處理,比如說,可以延時采樣,可以顯示波形的最大值、最小值、平均值,並能夠根據需要放大波形的倍數,在采樣的任何時期可以結束采樣。另外,還利用快速傅立葉變換實現了簡單的頻譜分析功能的實現。具體如下:
(1)
具有音效卡採集參數設定功能;具有錄音和重放功能;可以實現聲音數據的採集;能夠完成功率譜信號的顯示與分析;
(2)
聲音採集數據能夠儲存並根據需要調用;
(3)
具有聲音信號濾波及處理功能。
(4) 基於LABVIEW的音效卡虛擬示波器應具有美觀實用的用戶界面。
音頻格式
設置
數據採集(音效卡)
數據處理
波形顯示
頻譜分析
數 據 儲 存
虛擬示波器結構框圖
第二章
虛擬示波器的具體實現
2. 1
圖形化的編程語言labview
labview主要用於儀器控制、數據採集、數據分析等領域,它是一種基於圖形編程語言(G語言)的開發環境,主要是以框圖形式編寫程序。它與C等傳統編程語言有著諸多相似之處,如:相似的數據類型、數據流控制結構、程序調制工具,以及層次化、模塊化的編程特點。但二者最大的區別在於:傳統編程語言用文本語言編程;而labview使用圖形語言(即:各種圖標、圖形符號、連線等),以框圖的形式編寫程序。用labview編程無須太多的編程經驗,因為labview使用的都是測試工程師熟悉的術語和圖標,如各種旋鈕,開關,波形圖等,界面直觀形象。
labview是一個功能強大的集成開發環境,它完整的集成了與GPIB、VXI、RS-232和內插式數據採集卡等硬體的通訊。Labview還具有內置程序庫,提供了大量的連接機制,通過DLLs、共享庫、OLE等途徑實現與外部程序代碼的連接。使用labview開發環境,用戶可以創建32位的編譯程序,從而為常規的數據採集、測試等任務提供了更快的執行速度。labview是真正的編譯器,用戶可以創建獨立的可執行程序,能夠脫離開發環境而單獨運行[2]。
一個labview程序包含三個主要部分:前面板、框圖程序、圖標/連接埠。前面板是labview程序的互動式圖形化用戶界面,用於設置用戶輸入和顯示程序輸出,目的是模擬真實儀器的前面板。框圖程序則是利用圖形語言對前面板上的控制量和指示量進行控制。圖標/連接埠用於把labview程序定義成一個子程序,以便在其他程序中加以調用,這使labview得以實現層次化,模塊化編程。
2. 2
虛擬示波器的界面實現
圖2-1是虛擬示波器的主界面:上半部分是波形顯示部分,用於顯示採集的波形,下半部分是對波形的頻譜分析。
圖2-1 示波器主界面的實現
採集來的信號首先要在圖2-1的波形實時顯示部分進行顯示,即圖2-2。
圖2-2 波形實時顯示界面
如圖2-2的軟面板是實時波形顯示窗口,可以顯示實時采樣波形。右上邊可以直接得到采樣數據的最大值、最小值、平均值。右下邊包含了放大倍數、采樣延遲時間兩個旋鈕。通過這兩個旋鈕,可以調整實時波形在屏幕上的顯示效果。另外,面板上還有采樣結束按鈕,用於結束采樣。波形實時顯示面板下面是一個工具面板:用X和Y按鈕可以改變X、Y軸的比例。如果想讓繪制的圖形自動適應變化的坐標比例,可以單擊每個按鈕左邊的鎖定
(4)
開關,使其自動鎖定。第二列的兩個是設置X、Y軸刻度值數字表示方式的快捷方式,單擊後可以對精度等特性進行設置。第三列的第一個是波形縮放工具,當用賦值工具單擊它時,可彈出波形縮放方式的選擇項,如圖2-3所示:
各功能如下:第一個按鈕是矩形縮放。選擇該項後,在顯示區上,按住滑鼠左鍵可以拉出一個方框,方框內的波形將被放大。橫著第二個是水平縮放按鈕:波形只在水平方向上被放大,垂直方向上保持不變。第三個是垂直縮放按鈕:波形只在垂直方向上被放大,水平方向上保持不變。
第二行第一個是取消縮放:取消最近的一次縮放操作。接下來的兩個是連續縮放按鈕。選中該項後,在顯示區內按住滑鼠左鍵,波形將以滑鼠指針停留位置為中心進行連續縮放。
圖2-3 工具面板的演示
(5)
2-4 實時波形的框圖程序
2-4的框圖中,左面是一個while循環框,圖框中隨機采樣信號與面板上的放大倍數旋鈕對應的圖標相乘(板卡的驅動先不考慮),然後輸入到實時波形屏幕中,接著信號流向圖框外,並變成數組型數據。框圖下方,設置采樣延遲時間,由面板上的旋鈕控制。另外還有采樣結束的控制按鈕。
右邊循環框外是對數組信號進行處理。通過labview 6i本身提供的子程序,可以得到數據的最大值、最小值和平均值。
該虛擬示波器是單通道虛擬示波器,要想設計多通道的示波器,只需在這個基礎上,在面板上加上幾個屏幕顯示控制項,框圖程序類似上圖即可。當需要把信號進行其他的處理時,我們可以選擇labview自帶的信號處理部件,也可以把編好的C程序或是matlab程序加入到系統中,擴充系統的功能。
2. 3
快速傅立葉變換(FFT)和labview分析庫中的FFT VI
從DAQ板上獲得的采樣信號是時域信號,這種信號給出了采樣時刻信號的幅度,但是很多情況下,更想了解的是頻率成分,而不是幅度值。頻域表示法就表示了單個頻率成分,這種表示法可以給出更多關於信號和系統的信息。
從時域的采樣數據變為頻域的演算法,稱為離散傅立葉變化(DFT)。DFT將采樣信號的時域跟頻域聯系起來。DFT廣泛應用於譜分析、應用力學、光學、醫學圖像、數據分析、儀器及遠程通信等方面[2]。
(6)
假設從DAQ板上獲得N個采樣信號,對這N個樣本進行DAT變換,結果仍將為N個樣本,但它卻是頻域表示法。時域的N個樣本與頻域的N個樣本之間的關系如下:
假設信號采樣率為fs,采樣間隔為t,有t=1/fs,采樣信號表示為Xi,
0<i<N-1(即有N個樣本),對這N個樣本進行傅立葉變換,公式如下:
Xk=X1*e(-j2*3.1415926*0/N)+X2*e(-j2*3.1415926*1/N)+……+Xi*e[-j2*3.1415926*(N-1)/N]
注意時域跟頻域中均有N個樣本。同時域中的時間間隔對應的頻率間隔f為:f=fs/N=1/Nt,f也稱為頻率解析度,增多采樣次數N或減小采樣頻率fs均能減小f(提高頻率解析度)。
對N個采樣數據進行DFT是個非常耗時的過程,大約需要n的平方次復數運算;但如果N是2的冪,假設N=2m,對N進行DFT就只需要m*N/2次操作,大大提高了速度,這種演算法叫做快速傅立葉變換(FFT),它其實就是當采樣N是2的冪時,進行DFT的一種快速演算法。FFT的優點在於速度快,且節省內存,這是因為當VI操作FFT時,無需額外的存儲緩沖區,但它要求輸入序列N必須是2的冪。而DFT速度比FFT慢得多,這是由於它需要額外的緩沖區來存儲中間的結果,但是DFT對任一個序列都適用。FFT中為了使采樣次數N等於2的冪,可以在輸入序列末尾加0。例如:若N=10,可以在輸入序列末尾加6個0,使得采樣次數的總數為16(2的4次方)。
分析庫中有兩種VI用來計算信號的FFT,即Real FFT VI和Complex FFT VI。兩者的區別在於,Real FFT對實信號進行FFT,Complex FFT對復信號進行FFT,值得注意的是,兩者的輸出均為復數。由於大多數信號都是實數值,因此可以用 Real FFT VI,當然也可以用Complex FFT VI,只是將虛數部分置為0。由於遠程通信中的信號一般都為復數信號(實部、虛部均不為0),此時應該使用Comlex FFT VI,對復電位進行調制將產生復信號。
2. 4
虛擬頻譜分析功能軟面板和方框圖的實現
圖2-5中,按界面上的運行按鈕,在顯示界面上分別會顯示時域波形和經過FFT以後的頻域波形。
(7)
2-5
虛擬頻譜分析功能軟面板的實現
2-6 虛擬頻譜分析功能框圖的實現
(8)
圖2-6中:
Arbitrary Wave
—— 用於產生一個隨機的波形,
Real
FFT —— 對輸入的采樣數據進行FFT,
Complex To Polar —— 將FFT的復數輸出分為實、虛兩部分(幅值和相位),相位部分以弧度為單位,但屏幕上只顯示FFT的幅值。
(9)
第三章
音效卡在虛擬示波器設計與實現
1.認識音效卡
隨著計算機技術和虛擬儀器技術的發展,虛擬儀器逐漸成為現代儀器的發展方向,其中大部分虛擬儀器都是基於各種數據採集卡的,如NI公司的PCI-6221數據採集卡,研華公司PCL-1800型數據採集卡,ISA型數據採集卡AC1820。在對采樣頻率要求不高的情況下,可以利用計算機的音效卡進行數據的輸入和輸出。音效卡是一個非常優秀的音頻信號採集系統,其數字信號處理包括模數變換器ADC(Analogue Digital Converter)和 數模變換器DAC(Digital Analogue Converter),ADC用於採集音頻信號,DAC則用於重現這些數字聲音。音效卡已成為多媒體計算機的一個標准配置,因此基於音效卡的虛擬儀器具有成本低,兼容性好,通用性和靈活性強的優點,可以不接受硬體限制,安裝在多台計算機上。本文利用LabVIEW8.2中的數字聲音記錄節點,編程實現了基於音效卡的虛擬雙蹤數字存儲示波器,采樣速率為44.1KHz,線路輸入埠最高電壓限制為1V,對高於1V的信號採用比例運算放大電路衰減後輸入,能適合
『貳』 Labview能不能實現演算法編程
我寫增量式PID算其實算簡單用LabVIEW接線比較麻煩用其matlab腳本語言編程簡單推薦本書《先進PID控制及其MATLAB模擬(2)》veryCD載本書編般看看面matlab編寫PID再LabVIEW面用matlab腳本
『叄』 labview軟體實現90度相移什麼演算法
圖像是哪種圖像,如果是類似google,yaohoo之類的驗證碼圖像,那就難了。
如果是清晰的標准圖像,比如你在網頁上截個屏,上面有幾個數字,那種圖像就是標准圖像,這種圖像對於labview來說明是小菜一蝶,用vision的OCR,對於較穩定的圖像來說准確率還是不錯的,時間也不會超過0.5ms/個。
如果是工業圖像,字元有破損,殘缺,毛刺,斷層等情況出現的話,那也是比較困難的,但是比驗證碼還是好一點,驗證碼難就難在分割字元上。工業字元分割一般沒問題,難就難在識別的演算法上,OCR對於這種圖像無能為力,如6和8,0和O,這就需要自己開發演算法了,根據字體的不同,演算法也不相同,沒有能夠做到通用的演算法,通用的演算法如字元匹配准確率又不高。
字元識別演算法就是一個提取字元信息加以判斷的過程,把人眼所能識別的信息轉化為計算機所能識別的。現在的漢字識別軟體一般採用基於特徵識別神經網路匹配的演算法,首先把字元分割成30格左右,每格的灰度值分為五個級別,得到長度為30的字元編碼,每個字元就有一個不同的編碼了,也可以再加一些特徵,比如是否有偏旁,哪邊灰度值更多,特徵越多准確率也就越高,但時間也會增加。對於英文字母和數字來說就沒必要那麼復雜了,它的特徵一般會有哪些,開口方向,對稱性(左右/上下/左上右下),當然還有很多特徵需要去自己分析了。
兩組數據顯示很簡單,捆綁就行了,X在上,Y在下
『肆』 labview i2ccrc校驗碼計算方法
你知道有限域或者模2除法嗎?不知道那下面就沒法講了。
CRC演算法基於有限域GF(2),通過在p位數據後附加r位校驗構成CRC校驗碼。r位校驗碼的生成是由校驗數據模2除一個不可約多項式G(x)得到的,G(x)常用取值有420、84210、8541等(每一位數字代表該數字對應的項系數是1)。我通過一個例子簡單說明一下演算法過程: 假設CRC校驗為(7,4),即7位CRC碼,其中4位為數據位,3位為校驗位。用於生成的不可約多項式為G(x)=x_+x+1=1011=310。現在需要傳輸的數據m(x)為1101=x_+x_+1。首先乘以x_,即在後面添3個零,變成1101000。接著計算有限域GF(2)=F2[X]/G(x)下x^6+x^5+x^3的同餘式,即用G(x)=1011模2除1101000,得到結果為1111餘001,這個余數001就是我們所求的校驗碼。將余數001添加到原多項式m(x)末尾,變成1101001,這個序列就是最終的CRC校驗碼。
『伍』 用Labview做演算法是不是不太合適
不會不適合,只是沒找對方法
每種語言都有自己的強項,你覺得LabVIEW不適合做演算法,你不會用MATLAB啊,也可以用LabVIEW調用其他語言啊
『陸』 怎樣將遺傳演算法嵌入於labview中
你可以用C,matlab 或其他語言寫好演算法,編譯成dll 在labview里調用。
『柒』 如何用LABVIEW編PID演算法
我寫了一個增量式的
PID演算法
,其實演算法很簡單的
如果用LabVIEW接線比較麻煩,用其中的matlab
腳本語言
編程很簡單的
推薦一本書《先進PID控制及其MATLAB模擬(2)》veryCD有下載的,這本書編的一般,但是可以看看裡面的matlab編寫PID,然後再LabVIEW裡面用matlab腳本就可以了