口袋实验室--使用AD2学习频谱参数测试

2024-05-01 10:28

本文主要是介绍口袋实验室--使用AD2学习频谱参数测试,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

目录

1. 简介

2. 频谱相关参数

2.1 频谱相关基本概念

2.1.1 采样时间间隔

2.1.2 采样频率

2.1.3 采样点数

2.1.4 采样时间长度

2.1.5 谱线数

2.1.6 奈奎斯特频率

2.1.7 频谱分辨率

2.1.8 最高分析频率

2.1.9 频谱泄露

2.2 窗函数

2.2.1 AD2的窗函数

2.2.2 测试矩形窗

2.2.3 测试平顶窗

2.3 频谱参数

2.3.1 幅值单位解释

2.3.2 几个常量解释

2.3.3 动态指标 

3. 其他相关知识

3.1 归一化

3.2 DFT 示例

4. 总结


1. 简介

通过AD2记录频谱相关知识。

2. 频谱相关参数

2.1 频谱相关基本概念

2.1.1 采样时间间隔

采样时间间隔,也称采样周期,一般使用 Ts 表示,Time sampling,是在数字信号处理中连续信号转换为离散信号时,连续信号的两次采样之间的时间差,用于说明多久采集一次信号的数据点。

截图中并未直接显示采样时间间隔,但可以通过采样频率500kHz换算,Ts=0.2ms。

2.1.2 采样频率

采样频率(fs)和采样时间间隔是描述数字信号采样过程的两个互为倒数的概念。尽管两者都能准确描述采样的属性,但在实际应用和理论讨论中,采样频率更为常用。

可能用采样频率更直观吧,而且还和奈奎斯特定理的关联,讨论采样频率而不是采样时间间隔,使得这一原则更易于理解和应用。

截图中直接显示了采样频率为500kHz。

2.1.3 采样点数

离散样本的总数。用N表示。

截图中显示的“8192 samples at 500kHz”中的“8192”就是采样点数。 

2.1.4 采样时间长度

采样时间长度,用T表示。

T=T_{s}\times N=\frac{N}{f_{s}}

2.1.5 谱线数

谱线数,在频谱图中出现的频率点数(不包含直流分量),用M表示。

M=\frac{N}{2}

2.1.6 奈奎斯特频率

由奈奎斯特采样定理(Nyquist Sampling Theorem)所确定,用fN表示。

f_{N}=2f_{max}

2.1.7 频谱分辨率

频谱分辨率,\Delta f,是指能够分辨两个相邻频率成分的最小频率间隔。

理论上,频谱分辨率由信号的采样时间长度决定,计算公式为:

\Delta f=\frac{1}{T}=\frac{f_{s}}{N}

T=1s,总采样时长1s, Δf=1Hz;

T=10s,总采样时长10s, Δf=0.1Hz;

2.1.8 最高分析频率

由奈奎斯特采样定理(Nyquist Sampling Theorem)所确定。用fmax表示。

2.1.9 频谱泄露

实际测量的信号是有限时长的,超出测量时长的信号就是未知的。当使用 FFT 算法(用于计算 DFT)对限时信号切片进行分析时,FFT 隐含地假设该信号在观察到的间隔后本质上会重复自身。这可能会导致每个切片边缘处的不连续性,从而导致每个测量时长的信号(Tn)中包含的能量溢出到其他测量时长的信号(Tm)频率谱中。这种现象称为频谱泄漏。

2.2 窗函数

窗函数用于在进行傅里叶变换之前修改信号,这些函数通过在信号的两端乘以特定的系数,即信号与窗函数相乘,以平滑 FFT 切片边缘的不连续性,从而减少边缘效应(频谱泄漏),改善频谱分析的结果。

2.2.1 AD2的窗函数

Digilent AD2提供以下窗函数:

  • Rectangular(矩形窗): 所有数据点都有相同的权重,主瓣非常窄(理论上具有最高的频谱分辨率)但旁瓣较高,会导致频谱泄漏。
  • Triangular(三角窗): 也称为Bartlett窗,中心点权重最大,向两端线性递减,旁瓣比矩形窗低,但主瓣更宽。
  • Hamming(汉明窗): 提供加权的余弦形状,旁瓣水平比矩形窗低,主瓣宽度适中,适合处理频率相近的信号。
  • Hann(ing)(汉宁窗): 类似汉明窗,但提供更平滑的加权,有助于进一步降低旁瓣水平。
  • Cosine(余弦窗): 使用余弦波形加权数据,某些应用中可以提供良好的频率分辨率。
  • Blackman-Harris(布莱克曼-哈里斯窗): 结合多个余弦项来减少旁瓣,最小化旁瓣水平时非常有效。
  • Flat Top(平顶窗): 设计用来保持信号的幅度精度,中心附近平坦,适用于频谱分析中的幅度校准
  • Kaiser(凯撒窗): 由James Kaiser在贝尔实验室开发,是一种参数化的窗函数,用于有限冲激响应滤波器设计和频谱分析。Kaiser窗通过调整参数α(或β=πα),在主瓣宽度和旁瓣水平之间进行权衡。

2.2.2 测试矩形窗

输入为50kHz正弦,Window=Rectangular,可以看到在频谱图中50kHz的谱宽非常窄。

2.2.3 测试平顶窗

输入为50kHz正弦,Window=Flat Top,可以看到在频谱图中50kHz的谱宽有所增加,但是幅度值和Rectangular接近,Flat Top窗对幅值精度有较好的保留。

2.3 频谱参数

2.3.1 幅值单位解释

  • 幅值的单位可以在图示位置设置
  • 部分单位需要同时设置Reference

Value

Unit

Description

1.0037 V

Peak (V)

Relative to 1V amplitude sine wave.

0.70973 Ṽ

RMS (Ṽ)

Relative to 1Ṽ (1.41V amplitude) sine wave.

0.3308 VHz

Ṽ/√Hz (VHz)

is RMS value / square root (RBW).

0.0322 dB

Peak (dB)

dB reference to peak value(sine wave).

-2.9781 dB

RMS (dB)

dB reference to RMS value.

-2.9781 dBṼ

dBṼ

dB reference to 1Ṽ sine wave, 20*Log10(Ṽ).

-0.7596 dBu

dBu

dB reference to 0.775Ṽ sine wave, 20*Log10(Ṽ/0.775).

10.03 dBm

dBm

dB reference to 0.224Ṽ sine wave, relative to 1mW on 50Ω load.

3.402 dBmHz

dBm/√Hz

dBm - 10*Log10(RBW/1Hz).

63.4 dBmMHz

dBm/√MHz

dBm - 10*Log10(RBW/1MHz).

-8.8685 dBO

dBOV

dB reference to full scale square wave, 20*Log10Ṽ/VFSSquare).

-11.8788 dBFS

dBFS

dB reference to full scale sine wave, 20*Log10(Ṽ/VFSSine).

2.3.2 几个常量解释

  • ENBW: Normalized equivalent noise bandwidth of window function,窗函数的归一化等效噪声带宽。该参数由窗函数决定。详细计算过程见:Equivalent noise bandwidth (ENBW) of window functions - GaussianWaves
  • Resolution: Resolution of bins, bin to bin distance. 
  • RBW: Resolution bandwidth is calculated from the transform resolution and window bandwidth. 
  • FS: Full scale is the input range, maximum magnitude of sine wave before clipping. 
  • DNR: Dynamic range is the ratio, in dB, of the largest to the smallest signals that can be detected.

2.3.3 动态指标 

  • NF: Noise floor is a root mean square (RMS) of all the bins except the peak signal and its harmonics. 
  • WoSpur: Worst spur level may or may not be a harmonic of the original signal; DC and bins on the descending slope are excluded. 
  • SFDR: Spurious free dynamic range is the ratio of the RMS value of the peak signal to the RMS value of the worst spurious signal. Expressed in dBc units, with respect to the actual signal amplitude. 
  • SFDRFS: Spurious free dynamic range, expressed in dBFS units, with respect to full-scale. 
  • SNR: Signal to noise ratio
  • SNRFS: Signal to noise ratio, expressed in dBFS units, with respect to full-scale. 
  • THD: Total Harmonic Distortion
  • SINAD: Signal to noise and distortion, S/(N + D)
  • ENOB: Effective number of bits.

3. 其他相关知识

3.1 归一化

3.2 DFT 示例

4. 总结

本文介绍了通过AD2记录频谱相关知识的过程,并深入探讨了频谱相关参数、窗函数以及频谱参数。频谱相关参数包括采样时间间隔、采样频率、采样点数等,而窗函数则在傅里叶变换前对信号进行修改,以改善频谱分析结果。频谱参数包括幅值单位解释、常量解释以及动态指标,这些参数对于正确理解频谱图和进行精确的频谱分析很有必要。

这篇关于口袋实验室--使用AD2学习频谱参数测试的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/951444

相关文章

Android Paging 分页加载库使用实践

《AndroidPaging分页加载库使用实践》AndroidPaging库是Jetpack组件的一部分,它提供了一套完整的解决方案来处理大型数据集的分页加载,本文将深入探讨Paging库... 目录前言一、Paging 库概述二、Paging 3 核心组件1. PagingSource2. Pager3.

python使用try函数详解

《python使用try函数详解》Pythontry语句用于异常处理,支持捕获特定/多种异常、else/final子句确保资源释放,结合with语句自动清理,可自定义异常及嵌套结构,灵活应对错误场景... 目录try 函数的基本语法捕获特定异常捕获多个异常使用 else 子句使用 finally 子句捕获所

C++11右值引用与Lambda表达式的使用

《C++11右值引用与Lambda表达式的使用》C++11引入右值引用,实现移动语义提升性能,支持资源转移与完美转发;同时引入Lambda表达式,简化匿名函数定义,通过捕获列表和参数列表灵活处理变量... 目录C++11新特性右值引用和移动语义左值 / 右值常见的左值和右值移动语义移动构造函数移动复制运算符

Python对接支付宝支付之使用AliPay实现的详细操作指南

《Python对接支付宝支付之使用AliPay实现的详细操作指南》支付宝没有提供PythonSDK,但是强大的github就有提供python-alipay-sdk,封装里很多复杂操作,使用这个我们就... 目录一、引言二、准备工作2.1 支付宝开放平台入驻与应用创建2.2 密钥生成与配置2.3 安装ali

C#中lock关键字的使用小结

《C#中lock关键字的使用小结》在C#中,lock关键字用于确保当一个线程位于给定实例的代码块中时,其他线程无法访问同一实例的该代码块,下面就来介绍一下lock关键字的使用... 目录使用方式工作原理注意事项示例代码为什么不能lock值类型在C#中,lock关键字用于确保当一个线程位于给定实例的代码块中时

MySQL 强制使用特定索引的操作

《MySQL强制使用特定索引的操作》MySQL可通过FORCEINDEX、USEINDEX等语法强制查询使用特定索引,但优化器可能不采纳,需结合EXPLAIN分析执行计划,避免性能下降,注意版本差异... 目录1. 使用FORCE INDEX语法2. 使用USE INDEX语法3. 使用IGNORE IND

C# $字符串插值的使用

《C#$字符串插值的使用》本文介绍了C#中的字符串插值功能,详细介绍了使用$符号的实现方式,文中通过示例代码介绍的非常详细,需要的朋友们下面随着小编来一起学习学习吧... 目录$ 字符使用方式创建内插字符串包含不同的数据类型控制内插表达式的格式控制内插表达式的对齐方式内插表达式中使用转义序列内插表达式中使用

flask库中sessions.py的使用小结

《flask库中sessions.py的使用小结》在Flask中Session是一种用于在不同请求之间存储用户数据的机制,Session默认是基于客户端Cookie的,但数据会经过加密签名,防止篡改,... 目录1. Flask Session 的基本使用(1) 启用 Session(2) 存储和读取 Se

Java Thread中join方法使用举例详解

《JavaThread中join方法使用举例详解》JavaThread中join()方法主要是让调用改方法的thread完成run方法里面的东西后,在执行join()方法后面的代码,这篇文章主要介绍... 目录前言1.join()方法的定义和作用2.join()方法的三个重载版本3.join()方法的工作原

Spring AI使用tool Calling和MCP的示例详解

《SpringAI使用toolCalling和MCP的示例详解》SpringAI1.0.0.M6引入ToolCalling与MCP协议,提升AI与工具交互的扩展性与标准化,支持信息检索、行动执行等... 目录深入探索 Spring AI聊天接口示例Function CallingMCPSTDIOSSE结束语