聚星C#数字信号处理工具包频谱分析的用法

 更新时间:2023年02月26日 13:20:44   作者:JXISH  
这篇文章主要介绍了聚星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);
  • aiTask.SampleRate
  • checkBoxPSD.Checked
  • spectralLines
  • readData
  • 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

例:

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

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

总结

以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。

相关文章

  • C# 透明窗体制作实现方法比较分析

    C# 透明窗体制作实现方法比较分析

    制作透明窗体办法有好几种,各有优缺点.我们先来看看C#本身提供的办法:通过设置窗体的 TransparencyKey实现,需要的朋友可以了解下
    2012-12-12
  • c# 用Base64实现文件上传

    c# 用Base64实现文件上传

    这篇文章主要介绍了c# 用Base64实现文件上传的方法,文中讲解非常细致,代码帮助大家更好的理解和学习,感兴趣的朋友可以了解下
    2020-08-08
  • C#入门教程之集合ArrayList用法详解

    C#入门教程之集合ArrayList用法详解

    这篇文章主要介绍了C#入门教程之集合ArrayList用法,结合具体实例分析了C#中集合的概念、功能、创建与使用方法,需要的朋友可以参考下
    2017-06-06
  • C#转换日期类型实例

    C#转换日期类型实例

    这篇文章主要介绍了C#转换日期类型的方法,以实例形式分析了将日期格式转换为Unix时间戳与时区结合的形式,是比较实用的技巧,具有一定的参考借鉴价值,需要的朋友可以参考下
    2014-12-12
  • 浅析JAVA中过滤器、监听器、拦截器的区别

    浅析JAVA中过滤器、监听器、拦截器的区别

    本文通过代码分析和文字说明的方式给大家浅析JAVA中过滤器、监听器、拦截器的区别,感兴趣的朋友一起看下吧
    2015-09-09
  • C#实现字符串转换成字节数组的简单实现方法

    C#实现字符串转换成字节数组的简单实现方法

    这篇文章主要介绍了C#实现字符串转换成字节数组的简单实现方法,仅一行代码即可搞定,非常简单实用,需要的朋友可以参考下
    2015-05-05
  • C#使用SqlServer作为日志数据库的设计与实现

    C#使用SqlServer作为日志数据库的设计与实现

    这篇文章主要给大家介绍了关于C#使用SqlServer作为日志数据库的设计与实现的相关资料,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2021-01-01
  • c#实现md5加密示例

    c#实现md5加密示例

    这篇文章主要介绍了md5加密,加密结果可以为32位、48位、64位,只要修改一下参数就可以实现
    2014-01-01
  • c# 动态加载dll文件,并实现调用其中的方法(推荐)

    c# 动态加载dll文件,并实现调用其中的方法(推荐)

    下面小编就为大家带来一篇c# 动态加载dll文件,并实现调用其中的方法(推荐)。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2017-02-02
  • C#泛型类型知识讲解

    C#泛型类型知识讲解

    这篇文章主要介绍了C#泛型类型知识,文中代码非常详细,帮助大家更好的理解和学习,感兴趣的朋友可以了解下
    2020-06-06

最新评论