您好,登錄后才能下訂單哦!
這篇文章主要介紹“C#數字信號處理工具包如何使用”的相關知識,小編通過實際案例向大家展示操作過程,操作方法簡單快捷,實用性強,希望這篇“C#數字信號處理工具包如何使用”文章能幫助大家解決問題。
聚星針對C#平臺開發了數字信號處理工具包。 這里講解頻譜分析用法:
引用
SeeSharpTools.JXI.DSP C:\SeeSharp\JXInst\SeeSharpTools\DSP\Bin\SeeSharpTools.JXI.DSP.dll
代碼
Complex[] readData = new Complex[AILength]; double[] spectrum = new double[AILength]; ... SpectrumTask _spectrumAnalyzer; _spectrumAnalyzer = new SpectrumTask(); _spectrumAnalyzer.InputDataType = InputDataType.Complex; //復數IQ頻譜 _spectrumAnalyzer.SampleRate = aiTask.SampleRate; //這里放采樣率 _spectrumAnalyzer.WindowType = FFTWindowType.Blackman_Harris; //B=2.0044 窗函數 _spectrumAnalyzer.Unit.Type = SpectrumOutputUnit.dBm;//單位 _spectrumAnalyzer.Unit.Impedance = 50;//電阻 _spectrumAnalyzer.Unit.IsPSD = checkBoxPSD.Checked;//是否密度譜 _spectrumAnalyzer.Output.NumberOfLines = AILength; //頻譜線數量,可以是時域波形長度 _spectrumAnalyzer.GetSpectrum(readData, ref spectrum);
aiTask.SampleRate
checkBoxPSD.Checked
spectralLines
readData
spectrum
應該根據實際情況改成你的程序里面的變量。
其中readData是輸入時域波形,spectrum是頻譜。
問題:
DSP-Core里面的EasyResample是簡單的輸入-輸出方法。(SeeSharpTools.JXI.SignalProcessing.Conditioning.EasyResample)
如果你輸入1000個點,要求輸出(歸一化)采樣間隔0.1,也就是內插10倍,輸出是8300個點。為什么不是10,000個點呢?
本算法是利用有限長沖激響應濾波器,實現頻譜失真極小的采樣率轉換。這種轉換是根據171個采樣點內插估計進行重采樣的。由于軟件不知道你給出的波形前后是什么情況(邊界條件),軟件只計算中間一段的波形,也就是要把原始采樣的170個采樣點(頭尾各85個點)作為邊界條件。
那么在計算內插或者篩減的時候就先要去掉170個點。
在前面問題假設情況下,1000個點減掉170個點,再內插10倍:
(1000-170)*10 = 8300
例:
對于降采樣,比如歸一化采樣間隔10,1000個點輸入得到
(1000-170) / 10 = 83個點輸出
關于“C#數字信號處理工具包如何使用”的內容就介紹到這里了,感謝大家的閱讀。如果想了解更多行業相關的知識,可以關注億速云行業資訊頻道,小編每天都會為大家更新不同的知識點。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。