LabVIEW的信號處理方法
有兩個同頻率的正弦信號,想測試它們的頻率和相位差。有三種方法:過零檢測法、相關分析法、頻譜分析法。
哪種方法最好編程和精度最高?用軟件來完成的話,對信號要做什么處理?
直接是在數采卡采集范圍內的正弦信號就行?做的思路是不是先采集兩路信號過來,然后再用各種函數進行分析?
A:
相位差式扭矩傳感器的信號測量,都是用程序處理的,而且結果都還不錯
兩種方法:
一種是直接將正弦信號采集進來,然后利用labview的相位分析控件求得相位差,這種方法的缺點是在高速旋轉時需要極高的采樣率,通常我們一塊6025的AI只能用來采這兩路信號。
另一種方法是在外圍用數字電路將兩路信號整定成方波,然后用門將表示相位差的方波做出來,然后用計數器口的脈寬測試功能求出具體相位差。
Q:
四川誠邦NJ型扭矩傳感器。轉速不高,最高1150轉,而且我常用的是
如果要用計數器的話,用幾個?我的卡只有兩個計數器。
A:
如果是直接采的話采樣率肯定越高越好
不過可以估算:0到90度對應量程M
n=轉速rpm*每轉輸出脈沖/60
假設采樣率
直采的兩路信號分別用Waveform
如果采用外部先處理的話也很簡單,先把兩路信號通過過零檢測芯片。
整為兩路方波信號,然后通過一個或非邏輯將兩路方波信號的相位差處理出來,成為一路方波信號,信號的高電平代表相位差,整個周期當然是360度了,然后用一路ctr口即可測試出這路信號的高電平脈寬和整周期寬度,從而可以得到相位差的角度表示。
2006528141661.rar
想測試一個10MHz的信號接入電容的前后波形的相位差,通過20M的信號發生器和數字化儀能測試出來嗎?
20M的信號發生器的速率是指每點的更新率,也就是說如果你要生成一個sine信號(每周期1000個點),那么你生成的sine的頻率為20KHz。所以你要得到一個10MHz的sine信號,最好用200MHz的發生器生成,比如NI
再用100MHz(5122)或200MHz(5124)的數字化儀來采就可以了(每個設備正好有2個同步采集的通道)。
數字濾波控件的taps
數字濾波控件的taps是
FIR
是濾波器傳遞函數的階數,
濾波
對采集到的數據進行濾波。采集到的數據都是二維數組,與數字濾波節點連接時告知source和sink類型不同,sink是waveform
可是二維數組如何才能變成waveform?
波形數據類型是一個簇,cluster,你可以先研究一下你的二維數組,把你需要處理的那組數先取出來,可以用數組里的函數。
把這個一位數組組合成一個cluster,
做倒譜根據的是先求功率譜,再取對數,然后進行傅立葉反變換,可圖上顯示是一個平底鍋底部的線條。
各位高手,誰做過,可否討論討論代碼,或者發來程序圖片看一下,我不肯定自己正確與否。
PS:我測的是一條頻率為5幅值為10的正弦波。
你倒譜計算步驟應該是對的,可能是參數設置的問題,建議參考一下現代信號分析的書
LabVIEW中暫時還沒有直接計算倒譜的工具函數
LabVIEW的高級信號處理工具包(Advanced
在這個工具包的子工具包(時間序列分析)中關于倒譜有下面幾個VI:
TSA
TSA
TSA
duty
關于duty
用LabVIEW如何decode
有個Express
評論