引用聲明:本文文字內容及程式範例大部分皆出自LABVIEW分析篇作者:蕭子健(出版日:2000/12/1),由於距離公元2千年已有15年之久,LabVIEW在訊號分析工具箱從6.x版本中至今已有許多功能上的更新,讓在此領域應用更為廣泛,而現今LabVIEW漸漸成為在圖形化程式語言開發環境中,提供更多的解決方案。
本文中,從最初的訊號產生到取樣計算,在這當中藉由頻譜分析、濾波器設計、曲線擬合、統計與機率及線性代數方城之應用等方式解決一系列的工程問題。在這當中無列出相關之理論公式,只藉由相關VI與程式顯示其結果,且VI都會顯示其功能的相關公式,可讓使用者進一步對照VI的選擇是否有誤。
由於現階段使用者大多版本為2009版以上已無法直接開啟6.x版本程式,故小弟花費許多時間從舊版中慢慢對照拉程式並盡量跑出結果,未盡事宜還請見諒,最後有興趣詳盡內容之讀者可參考書籍。未來將會持續更新書中VI程式!!!
第1章-背景
在某些儀器上,常見到振幅顯示中具有線性尺度、分貝(dB)尺度等兩種選項。
線性尺度:實際顯示出實際振幅的大小。
分貝尺度:則顯示經過的轉換,常見於聲音、震動量測、及顯示頻域等資訊。
分貝的定義如下: 1dB=10log10(能量比率)=20log10(電壓比率)
分貝、能量比率與電壓比率對應數值
|
dB |
能量比率 |
電壓比率 |
|
+40 |
10000 |
100 |
|
+20 |
100 |
10 |
|
+6 |
4 |
2 |
|
+3 |
2 |
1.4 |
|
0 |
1 |
1 |
|
-3 |
1/2 |
1/1.4 |
|
-6 |
1/4 |
1/2 |
|
-20 |
1/100 |
1/10 |
|
-40 |
1/10000 |
1/100 |
Ex1:顯示線性尺度與分貝尺度之關係值
第2章-訊號產生
生活中大多皆為類比的訊號,而訊號頻率(signal frequency)的量測方式通常採用Hz 或 cycle/second(秒/週期)為主。而數位系統中使用數位頻率(digital frequency),而數位頻率等同於類比頻率(analog frequency)與取樣頻率(sampling frequency)之比值,為數位頻率=類比頻率/取樣頻率。數位頻率亦即為正規化頻率,單位(cycles/sample),正規化頻率之倒數(1/f)表示在單一週期中有多少取樣次數,當使用一個需要正規化頻率控制元輸入的VI時,需自行轉換頻率單位至正規化頻率的單位(cycles/sample)如下:Sine Wave、Square Wave、Sawtooth Wave、Triangle Wave、Arbitrary Wave、Chip Pattern等。如果使用週期(cycles)來表示頻率,需將週期轉換成(cycles/sample)並除以sample/second(每秒鐘有多少取樣點)。
Ex1:範例中2週期50個取樣本,正規化頻率f=1/25 cycles/sample
Ex2:Sine Wave(波形) 與Sine Pattern(模式)之差異性
Sine Wave:執行程式過程中可發現,Sine Wave波形顯示上再改變Phase in當中皆有不同的繪製波形,主要原因為參數控制上的reset phase 設置為OFF,故每次執行過程中產生的相位皆會改變。Sine Pattern :所執行之繪製波形都是相同的,顯示週期為2的正弦波形訊號,但兩者相位值皆取決於phase in 上的輸入值。
注:(phase in 與phase out 之控制與顯示皆以度(degree)為單位,即1週期為360°,可利用程式代碼,嘗試phase in參數為45、60、90、180角度圖形變化)。
Ex3:建立波形產生器
訊號產生不外乎下列四種波形,並從程式代碼了解每項設置參數對於波形影響。
第3章-訊號處理
當利用一資料擷取卡(如: DAQ、PCI)等擷取卡取樣時,通常此一訊號再被取樣的瞬間振幅(如:電壓、電流值),分布在不同時間點上的數值表示著此訊號在時域中的取樣值。而許多應用當中對於一個訊號由哪些頻率所構成一個隨時間變化的振幅更加感興趣,將訊號表示為個別頻率在訊號中占有的比重多少就是此頻域中觀察到的訊號。
透過離散傅立葉轉換(DFT),可將訊號在時域中取樣的數值變換成頻域中的數列的演算法,在頻譜分析中應用力學、醫學影像、數值分析及電學等領域中經常可看到DFT。DFT可應用在任何大小的數列,但計算速度比FFT慢且過程中須紀錄較多的中間值所以比FFT更耗費記憶體。
Ex1:利用Real FFT繪製出單邊傅立葉轉換
快速傅立葉轉換(FFT): LabVIEW的分析函數庫中有兩個可以計算訊號的FFT分別為Real FFT 和Complex FFT。真實世界中大多數訊號為實數,大多使用Real FFT當然也能使用Complex FFT只需將虛部設為零即可。
由於FFT輸出同時包含了正負頻率屬於雙邊轉換,而此FFT只含有正頻率項稱之為單邊FFT,每個正頻率項需乘2以得到正確的量值。
Ex2:FFT與功率頻譜之間差異
功率頻譜(Power Spectrum):每一個DFT/FFT頻率項的強度可定義為該頻率項的square of norm)。在不需要相位資料的應用中可使用功率頻譜,例如計算一個正弦訊號輸入至一個非線性系統中而後觀察系統輸出之共振強度。
第4章 窗口法
窗口法中是利用窗口函數與一段在時域中取樣的數列經由相乘後,達到繪製數列的目的。兩個函數在時域的乘法就相當於在頻域的旋積(convolution),一般可應用在界定觀測區間、減少頻譜損失、和可將一個振福較小的訊號從振幅較大且頻率接近的訊號分離出來。
而在LabVIEW當中的分析函數裡有許多不同類型的窗口函數可供選用,下列可針對不同類型的訊號所建議之使用的窗口函數。但實際應用中,取樣之訊號還不足以判斷該使用哪種窗口函數,需經由試驗才能曉得。
|
訊號類型 |
適合窗口函數 |
|
訊號的變化時間比取樣時間短 |
矩形窗 |
|
訊號的變化時間比取樣時間長 |
指數窗、Hanning窗 |
|
一般應用 |
Hanning窗 |
|
Order tracking |
矩形窗 |
|
系統分析(量測頻率響應) |
Hanning 窗、矩形窗 |
|
分離兩個頻率接近但振幅相差很多之訊號 |
Kaiser-Bessel 窗 |
|
分離兩個頻率接近但振幅相差不多之訊號 |
矩形窗 |
Ex1:窗口法對頻譜損失的影響
Graph1:時域中取樣得到的訊號數列。
Graph2:將連續數列連續複製而建構出的週期性訊號。
Graph3:以dB為單位的頻譜圖,白色為沒有使用窗口法的頻譜,而紅色為使用Hanning 的頻譜。。
Ex2:頻域及時域中經由窗口法前後產生之訊號差異
經由窗口函數處理過後的訊號轉換得到之頻譜譜線寬仍可以保持在幾乎同樣的寬度,但未經過函數處理的訊號譜線將變得較寬且不易觀察,這現象稱為頻譜損失,將取樣數設定為整數與非整數週期將可更容易觀察出差異性。
Ex3:六種不同窗口函數之使用(Hanning、Hamming、Triangle、Rectangular、Kaiser-Bessel、Exponential)。
上圖為六種窗函數在時域中的波形圖,最右下則為左邊原始正弦波形與右側相乘的結果。
Ex4:窗口函數分離兩個頻率相近但是振幅相差很大之正弦訊號
將兩個正弦函數疊加並經由DFT轉換到頻域,圖中可看出兩個函數頻率相近但振幅卻有差異性,如果沒有利用窗口函數將無法分辨兩個不同的正弦函數。
(程式4-2)
第五章 量測
LabVIEW中的量測子面板VI中,可執行各種量測需求及分析除了計算系統的前諧振失真(Total harmonic distortion,THD)、脈衝有關參數,如Rise Time、Overshoot、一個訊號的功率頻譜和相位頻譜(phase spectrum)、估算訊號內含有的AC值與DC值。也可決定系統的脈衝響應(Impluse response)或轉移函數(transfer function)。
Ex1:計算訊號的頻譜
此項分析方法廣泛應用在橋梁設計及估算機械震動等領域中。
Ex2:計算窗口函數的相干增益與等效雜訊頻寬
由於上章所提到之窗口法對於原始訊號會產生不同程度之影響,必須能夠對這些影響做客觀且數量化的評估,其中相干增益(CG)與等效雜訊頻寬(ENBW)可對產生之影響作數量化之評估。Window 1 和Window 2 分別為Hamming及Hanning 窗口函數,雖然外型非常像,但從constant亦可觀察出兩者的差異。
Ex3:利用Harmonic Analyzer VI 計算諧振失真
當一頻率為f1的信號x(f),輸入一個非線性系統此時輸出訊號的頻率不僅包含原來的頻率f1還包含原始頻率的諧振頻率(f2=2*f1、f3=3*f1)。諧振頻率的多寡其振福就表示著一個系統的非線性度。
(程式5-3)
第六章 數位濾波器
濾波器是一種改變訊號中頻率成份的處理過程,日常生活中,音響中的高低音控制就是一種濾波器應用,並在訊號處理中佔有極重要的地位,主要為可減少訊號中的雜訊。藉由訊號中某頻率區段衰減或通過可分為下列幾種濾波器:
低通濾波器(lowpass filter):訊號中低頻部分通過而衰減掉訊號中高頻部分。
高通濾波器(highpass filter):訊號中高頻部分通過而衰減掉訊號低頻部分。
帶通濾波器(bandpass filter):訊號的中間頻率部分通過,衰減其他頻率。
帶禁止濾波器(bandstop filter):衰減訊號中的中間頻率部分,使兩旁頻率通過。
Ex1:從含有高頻雜訊中過濾出正弦波訊號
Ex2:比較不同IIR濾波器頻率響應之性質
無限脈衝響應濾波器(IIR),由較低階數的濾波器牽涉數值運算較少,可以減少計算的誤差,當濾波器階數高於20~30階時將會產生嚴重誤差。所需之濾波器判斷方式為:是否需要相位為線性、是否能接受漣波、要求多窄的過渡頻帶等方式。故可依據使用情況下表IIR進行處理:
|
IIR濾波器種類 |
頻率響應性質 |
同階數過度頻帶的寬度 |
達到較好率波效果所需階數 |
|
Butterworth |
沒有漣波 |
最寬 |
最高 |
|
Chebyshev |
通過頻帶有擾動 |
|
|
|
反Chebyshev |
禁止頻帶有擾動 |
|
|
|
橢圓濾波器 |
帶通頻帶及禁止頻代都有漣波 |
最窄 |
最低 |
圖中人機介面控制板提供了不同濾波器的選擇,Filter Type 可設定濾波器為高通、低通、帶通及帶禁止濾波器,Display則是選擇圖形之頻率響應的量值刻度是線性或對數性質,最後響應頻率就是將脈衝衝入到濾波器在計算濾波器輸出的傅立葉轉換。
程式(6-2)
Ex3:數位濾波器移除不要的頻率
將兩種不同頻率之正弦訊號疊加後,輸入Butterworth低通濾波器最後得出單一正弦波。其中Order為階數,Cutoff frequ:fl為改變低通濾波器截止率。
Ex4:觀察FIR濾波器頻率響應性質
FIR濾波器輸出只與現在及過去輸入有關,因和過去輸出無關,故脈衝響應只持續一段有限時間後就衰減為零。圖中可顯示FIR濾波器強度及相位頻率響應性質關係。
(程式6-5)
最後只要了解數位訊號處理基礎理論,使用LabVIEW所提供之分析工具箱可簡單設計出具有使用者介面及各種類型濾波器並整合至其他應領域。
第七章 曲線擬合
眾多分析法中屬於曲線擬合(Curve Fitting)最常被使用,而擬合曲線的實際應用則有幾項供參考:移除測量時的誤差、回補已遺失之數據、可使用外與內插法以求得資料、數位資料的微分與積分、可求得不連續測量中物體的運動軌跡。
Ex1:實驗資料做線性曲線擬合
MSE值表示為均方差,值越小代表擬合越成功
Ex2:實驗資料做多項式曲線擬合
藉由兩圖比較下可看出擬合出之差異性
Ex3:比較線性、指數、多項式之曲線擬合方式,求得最能表示原始資料的最小平方係數
擬合法會依據不同的演算法,產生具有不同雜訊的資料取樣,以驗證哪個曲線的參數最能顯現出原始資料點的特性。
(程式7-3)
Ex4:使用General LS Linear Fit(最小平方線性擬合),使用X1與X2或更多變數將曲線擬合成具有多個變數的函數。產品數量為X1、X2表示為麵粉的單價、Y(成本/元)和H表示原始資料的來源、最後以Equation1表示總成本計算方程式。
Ex5:使用nonlinear Lev-Mar Fit擬合資料並求得最佳的預測係數a、b與c以建立一般指數函數的模型(a*exp(b*c)+c+noise)
(程式7-6)
Ex6:擬合具有雜訊的高斯分布資訊
(程式7-7)
第八章 線性代數
線性代數方程式系統應用範圍廣泛,在LabVIEW中線性代數VI中有許多不同的演算法如:數位訊號處理(DPS)、控制與量測上級類神經網路的應用)的應用基礎,以解學科學上計算也能利用代數方程式模擬微分方程之結果。
Ex1:計算反矩陣
建立一VI計算反矩陣A,更進一步可計算一個與矩陣A相似的B矩陣,若是有一個非奇異的T矩陣,將使得B=T-1,那A矩陣相似於B矩陣,且具有相同特徵值,可將驗證這個相似矩陣的定義。
Ex2:計算線性方程式系統
利用Solve Linear Equations VI來解方程式系統Ax=b,充分了解此系統將對許多實際上的應用有所助益。
Ex3:計算Colesky分解法與QR分解法
利用Colesky來計算矩陣A並得出矩陣IU之值,而QR分解法結果中是一個MxM的正交矩陣Q與一個上三角矩陣R,其大小為MxN,最後Result Matrix 包含轉置後的正交矩陣與正交矩陣的乘積。
Ex4:計算奇異值分解法(SVD)
藉由計算矩陣A的秩,並觀察該矩陣的秩與非零的奇異值。
第九章 機率與統計
統計學上可幫助整合資料可做出是當的推論,而機率可用來判斷上述推論的準確性,以便於往後的整合應用,而LabVIEW更可提供相關VI如Mean、Median、Sample Variance、Standard Deviation、Mode、Moment about mean、histogram、MSE、RMS等給使用者作適當的應用。
Ex1:針對不同統計型(Mean、Histogram、Median、Mode) VI應用
Ex2以常態分佈來產生資料,並驗證一個隨機變量X的機率
第十章 G math工具箱
語法分析的VI藉由讀入使用者輸入的字串,再把字串分析成幾個公式的集合,與原本LabVIEW中原有的公式節點不同可從以下表了解其中差異:
|
意義 |
公式節點 |
語法分析VIS |
|
變數 |
沒有限制 |
只允許a、a0…z、z0、z9 |
|
二進位之函式 |
Max、min、mod、rem |
無 |
|
複雜的數學函式 |
無 |
Gamma、ci、si、spike、step 、square |
|
指定 |
= |
無 |
|
邏輯、狀態判別、 不相等或相等 |
? 、||、&&、!= 、 ==、< >、<=、>= |
無 |
|
pi |
pi |
Pi(1)=pi、Pi(2)=2pi |
Ex1:使用語法分析器,來產生任意的波形,formula依據寫入的單變數公式
Ex2:藉由使用代入式變數VI產生更複雜的波形
Parameter name 與 Parameter content分別填入變數與數學式已產生不同波形
最後需要相關LaVIEW程式,請留言!!!3Q

您好,最近有在練習關於傅立葉轉換的部分,不知能否提供一下LabVIEW的程式,想學習一下,謝謝
這是我聯絡方式,f87456@yahoo.com.tw
好的 最近寄給你
您好,最近有在寫量測分貝部分,是否可提供Labview的程式想了解一下,謝謝
原程式已不再喔!!
這是我的信箱,apple7771288@gmail.com
原程式已不在~至LABVIEW 範例程式就有喔
您好,最近再做專題作業需要訊號分希,希望能得到LABVIEW程式了解一下,謝謝!這是我的信箱,sam403nivek@gmail.com
原程式已不在~至LABVIEW 範例程式就有喔
您好,我最近需要撰寫這部分的東西,可以寄給我嗎? 我的信箱是bnm123179@gmail.com
最近我實習需要做這些東西,可以寄給我嗎?謝謝! 我的信箱: guomy01@gmail.com
原程式已不在~至LABVIEW 範例程式就有喔
這些程式在書局裡賣的書裡都會有範例~軟體裡面的範例裡面也會有!!因為程式都已經不見了@@
最近在學LABVIEW NI DAQ做頻率響應時出現一些問題,可以請教你一下嗎?謝謝~~ 頻率響應量測出了暫態響應,是我那設定錯了嗎? 變頻器輸出10HZ,做頻率響應卻出戰態響應
原程式已不在~至LABVIEW 範例程式就有喔
最近寫論量測我需要做這些東西,可以寄給我嗎?謝謝! 我的信箱: ttq0103@gmail.com
原程式已不在~至LABVIEW 範例程式就有喔