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

作者:JXISH 时间:2022-08-30 11:06:39 

聚星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

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

例:

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

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

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

来源:https://blog.csdn.net/JXISH001/article/details/85098105

标签:聚星,C#,数字信号,频谱分析
0
投稿

猜你喜欢

  • Java对象在JVM中的生命周期详解

    2023-11-24 16:15:03
  • Java几种常用的断言风格你怎么选

    2021-10-30 23:30:32
  • MyBatis插入Insert、InsertSelective的区别及使用心得

    2023-08-25 04:34:28
  • Java持久化XML文件配置解析

    2022-06-27 13:45:07
  • 通过实例解析Spring argNames属性

    2023-09-14 10:43:13
  • Eclipse的Debug调试技巧大全(总结)

    2023-11-25 06:14:06
  • Spring Boot中lombok的安装与使用详解

    2021-08-26 14:50:38
  • OpenCV实现人脸识别简单程序

    2023-07-07 00:31:12
  • C#通过PInvoke调用c++函数的备忘录的实例详解

    2023-11-25 12:53:08
  • RocketMQ源码解析broker 启动流程

    2022-12-25 10:50:54
  • java web中图片验证码功能的简单实现方法

    2023-06-07 13:30:53
  • 学会IDEA REST Client后就可以丢掉postman了

    2023-11-10 15:32:56
  • Java 8 开发的 Mybatis 注解代码生成工具

    2023-01-02 19:53:44
  • Java创建随机数的四种方式总结

    2022-05-11 10:29:17
  • Flutter刷新组件RefreshIndicator自定义样式demo

    2023-07-06 15:56:45
  • Flutter本地存储之基本的键值对存储详解

    2023-08-18 03:52:35
  • Java并发编程示例(七):守护线程的创建和运行

    2023-11-25 11:39:32
  • Java Hibernate使用SessionFactory创建Session案例详解

    2022-03-04 06:21:28
  • Maven配置文件pom.xml详解

    2022-07-03 02:26:43
  • java读取cvs文件并导入数据库

    2023-11-25 01:23:13
  • asp之家 软件编程 m.aspxhome.com