C#数字信号处理工具包如何使用

发布时间:2023-02-27 09:50:39 作者:iii
来源:亿速云 阅读:130

这篇文章主要介绍“C#数字信号处理工具包如何使用”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“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);

应该根据实际情况改成你的程序里面的变量。

其中readData是输入时域波形,spectrum是频谱。

C# 数字信号处理工具包 DSP-Core 重采样(Resample)输出点数是多少

问题:

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

C#数字信号处理工具包如何使用

例:

对于降采样,比如归一化采样间隔10,1000个点输入得到

(1000-170) / 10 = 83个点输出

C#数字信号处理工具包如何使用

关于“C#数字信号处理工具包如何使用”的内容就介绍到这里了,感谢大家的阅读。如果想了解更多行业相关的知识,可以关注亿速云行业资讯频道,小编每天都会为大家更新不同的知识点。

推荐阅读:
  1. 使用pyinstaller怎么实现一个超级加密功能
  2. 如何在docker中部署一个.NET 5 运行环境

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

上一篇:C#指针内存控制Marshal内存数据存储原理是什么

下一篇:C# Marshal类基本概念和入门实例代码分析

相关阅读

您好,登录后才能下订单哦!

密码登录
登录注册
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》