聚星C#数字信号处理工具包频谱分析的用法
目录
- 聚星C#数字信号处理工具包频谱分析
- JXI C# DSP Tools, CCCitSpectrum Analysis
- C# 数字信号处理工具包 DSP-Core 重采样(Resample)输出点数是多少
- 重采样截短效应
- 总结
聚星C#数字信号处理工具包频谱分析
JXI C# DSP Tools, Spectrum Analysis
聚星针对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是频谱。
C# 数字信号处理工具包 DSP-Core 重采样(Resample)输出点数是多少
问题:
DSP-Core里面的EasyResample是简单的输入-输出方法。(SeeSharpTools.JXI.Signa编程客栈lProcessing.Conditioning.EasyResample)
如果你输入1000个点,要求输出(归一化)采样间隔0.1,也就是内插10倍,输出是8300个点。为什么不是10,000个点呢?
重采样截短效应
本算法是利用有限长冲激响应滤波器,实现频谱失真极小的采样率转换。这种转换是根据171个采样点内插估计进行重采样的。由于编程客栈软件不知道你给出的波形前后是什么情况(边界条件),软件只计算中间一段的波形,也就是要把原始采样的170个采样点(头尾各85个点)作为边界条件。
那么在计算内插或者筛减的时候就先要去掉js170个点。
在前面问题假设情况下,1000个开发者_JS开发点减掉170个点,再内插10倍:
(1000-170)*10 = 8300
例:
对于降采样,比如归一化采样间隔10,1000个点输入得到
(1000-170) / 10 = 83个点输出
总结
以上为个人经验,希望能给大家一个参考,也希望大家多多支持我们。
精彩评论