<meter id="pryje"><nav id="pryje"><delect id="pryje"></delect></nav></meter>
          <label id="pryje"></label>

          新聞中心

          EEPW首頁(yè) > 測(cè)試測(cè)量 > 設(shè)計(jì)應(yīng)用 > LabVIEW的信號(hào)處理方法

          LabVIEW的信號(hào)處理方法

          作者: 時(shí)間:2017-01-05 來(lái)源:網(wǎng)絡(luò) 收藏
          相位差測(cè)試哪種方法最好用?

          有兩個(gè)同頻率的正弦信號(hào),想測(cè)試它們的頻率和相位差。有三種方法:過(guò)零檢測(cè)法、相關(guān)分析法、頻譜分析法。
          哪種方法最好編程和精度最高?用軟件來(lái)完成的話(huà),對(duì)信號(hào)要做什么處理?
          直接是在數(shù)采卡采集范圍內(nèi)的正弦信號(hào)就行?做的思路是不是先采集兩路信號(hào)過(guò)來(lái),然后再用各種函數(shù)進(jìn)行分析?
          A:
          相位差式扭矩傳感器的信號(hào)測(cè)量,都是用程序處理的,而且結(jié)果都還不錯(cuò)
          兩種方法:
          一種是直接將正弦信號(hào)采集進(jìn)來(lái),然后利用labview的相位分析控件求得相位差,這種方法的缺點(diǎn)是在高速旋轉(zhuǎn)時(shí)需要極高的采樣率,通常我們一塊6025的AI只能用來(lái)采這兩路信號(hào)。
          另一種方法是在外圍用數(shù)字電路將兩路信號(hào)整定成方波,然后用門(mén)將表示相位差的方波做出來(lái),然后用計(jì)數(shù)器口的脈寬測(cè)試功能求出具體相位差。
          Q:
          四川誠(chéng)邦NJ型扭矩傳感器。轉(zhuǎn)速不高,最高1150轉(zhuǎn),而且我常用的是300轉(zhuǎn)左右。用那種方法好用一些?
          如果要用計(jì)數(shù)器的話(huà),用幾個(gè)?我的卡只有兩個(gè)計(jì)數(shù)器。
          A:
          如果是直接采的話(huà)采樣率肯定越高越好
          不過(guò)可以估算:0到90度對(duì)應(yīng)量程Mn.m
          n=轉(zhuǎn)速rpm*每轉(zhuǎn)輸出脈沖/60代表每秒產(chǎn)生的正弦波個(gè)數(shù)
          假設(shè)采樣率N,那么N/n代表采樣每個(gè)正弦波的點(diǎn)數(shù)。(360/(N/n))/90*M就代表扭矩分辨率了,看你要求的精度可以估算大體采樣率
          直采的兩路信號(hào)分別用WaveformMeasurement下的ExtractSingleToneInformation.vi計(jì)算出相位,然后兩路相減就可以求出相位差
          如果采用外部先處理的話(huà)也很簡(jiǎn)單,先把兩路信號(hào)通過(guò)過(guò)零檢測(cè)芯片。
          整為兩路方波信號(hào),然后通過(guò)一個(gè)或非邏輯將兩路方波信號(hào)的相位差處理出來(lái),成為一路方波信號(hào),信號(hào)的高電平代表相位差,整個(gè)周期當(dāng)然是360度了,然后用一路ctr口即可測(cè)試出這路信號(hào)的高電平脈寬和整周期寬度,從而可以得到相位差的角度表示。

          本文引用地址:http://www.ex-cimer.com/article/201701/336549.htm

          2006528141661.rar

          相位角的測(cè)試

          想測(cè)試一個(gè)10MHz的信號(hào)接入電容的前后波形的相位差,通過(guò)20M的信號(hào)發(fā)生器和數(shù)字化儀能測(cè)試出來(lái)嗎?

          20M的信號(hào)發(fā)生器的速率是指每點(diǎn)的更新率,也就是說(shuō)如果你要生成一個(gè)sine信號(hào)(每周期1000個(gè)點(diǎn)),那么你生成的sine的頻率為20KHz。所以你要得到一個(gè)10MHz的sine信號(hào),最好用200MHz的發(fā)生器生成,比如NI5422。
          再用100MHz(5122)或200MHz(5124)的數(shù)字化儀來(lái)采就可以了(每個(gè)設(shè)備正好有2個(gè)同步采集的通道)。

          數(shù)字濾波控件的taps

          數(shù)字濾波控件的taps是

          FIR濾波器的分支數(shù),也可以認(rèn)為是寄存器的個(gè)數(shù)。
          是濾波器傳遞函數(shù)的階數(shù),所以就是在進(jìn)行處理時(shí)開(kāi)窗窗口的長(zhǎng)度。
          濾波

          對(duì)采集到的數(shù)據(jù)進(jìn)行濾波。采集到的數(shù)據(jù)都是二維數(shù)組,與數(shù)字濾波節(jié)點(diǎn)連接時(shí)告知source和sink類(lèi)型不同,sink是waveform
          可是二維數(shù)組如何才能變成waveform?

          波形數(shù)據(jù)類(lèi)型是一個(gè)簇,cluster,你可以先研究一下你的二維數(shù)組,把你需要處理的那組數(shù)先取出來(lái),可以用數(shù)組里的函數(shù)。
          把這個(gè)一位數(shù)組組合成一個(gè)cluster,怎么做么?waveform的類(lèi)型是t0,dt,data組成的,分別是起始時(shí)間,時(shí)間間隔,和數(shù)據(jù)的一位數(shù)組,你把這三項(xiàng)輸入到buildwaveform里面就可以生成波形數(shù)據(jù)類(lèi)型了。

          做倒譜根據(jù)的是先求功率譜,再取對(duì)數(shù),然后進(jìn)行傅立葉反變換,可圖上顯示是一個(gè)平底鍋底部的線(xiàn)條。
          各位高手,誰(shuí)做過(guò),可否討論討論代碼,或者發(fā)來(lái)程序圖片看一下,我不肯定自己正確與否。
          PS:我測(cè)的是一條頻率為5幅值為10的正弦波。

          你倒譜計(jì)算步驟應(yīng)該是對(duì)的,可能是參數(shù)設(shè)置的問(wèn)題,建議參考一下現(xiàn)代信號(hào)分析的書(shū)
          LabVIEW中暫時(shí)還沒(méi)有直接計(jì)算倒譜的工具函數(shù)

          LabVIEW的高級(jí)信號(hào)處理工具包(AdvancedSignalprocessingToolkit)提供了直接計(jì)算倒譜的VI,
          在這個(gè)工具包的子工具包(時(shí)間序列分析)中關(guān)于倒譜有下面幾個(gè)VI:
          TSARealCepstrum.vi
          TSAComplexCepstrum.vi
          TSAInverseComplexCepstrum.vi
          dutycycledecoding

          關(guān)于dutycycledecoding
          用LabVIEW如何decode占空比?我知道似乎應(yīng)該用timer,不過(guò)不知道具體該怎么弄
          有個(gè)ExpressVI:TimingandTransitionMeasurement




          關(guān)鍵詞: LabVIEW信號(hào)處

          評(píng)論


          技術(shù)專(zhuān)區(qū)

          關(guān)閉
          看屁屁www成人影院,亚洲人妻成人图片,亚洲精品成人午夜在线,日韩在线 欧美成人 (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })();