历史上的今天
返回首页

历史上的今天

今天是:2024年10月14日(星期一)

正在发生

2020年10月14日 | 如何把示波器上的FFT 做成极致?

2020-10-14 来源:eefocus

一、示波器上的FFT 是什么?
二、示波器的FFT 能解决什么问题?
三、示波器的FFT 经常变成用户手里的鸡肋,问题在哪?
四、我们把示波器上的频谱分析功能做到极致,怎么做到的?
五、示波器上的频谱分析功能发展趋势

  
一、有了数字示波器,我们对波形的处理就不在单纯了,不再只是停留在看看波形形状,不再满足只是测量几个参数了。


我们总想着对采下来的数据做更多的处理,示波器更准确的理解,它更像一个波形分析仪正是工程师的不满足,才有我们不断追求推动极限的动力,因为我们经常低估我们的潜力,极限到底在哪? 到底是谁最先把FFT(快速傅里叶变换)用在数字示波器里边呢,说法很多。好像突然间,大家在示波器上都发现有FFT 功能了,而且都是标准配置,虽然都有这个功能,但是做成的结果千差万别,速度和指标也都各不相同,任何事情开始阶段都相同,都先追求有,再谈差异化。况且示波器本身是个定性的工具,谁又在乎示波器在频域上的指标精度呢,除了我们可爱的研发工程师。情况在变化,很多时候用户希望通过一个仪器来解决所有问题,因为说实话,很多工程师没有条件在桌上摆上电位计,频谱仪,示波器,矢网。多数情况,示波器把采集下来的时域数据样本,进行软件fft 运算,变成频域的样本,再通过数据重组,把频域的样本显示出来。
  
fft 的能力取决于一下几个指标: 存储器大小,软件运算速度,动态有效位ENOB,底噪。因为这些指标直接决定fft 后的刷新速度,动态范围,灵敏度,分辨率带宽RBW。

二、示波器的fft 能解决什么问题呢?
受限于手头的工具(所有工程师都梦想桌上摆着最先进的示波器和频谱仪),而且很多时候工程师调试电路时候需要先定性观察一下,fft 就成了看频谱的好工具了。说实话,很多厂商fft 功能都做得差强人意,无非两类原因,一类是不具备做好的能力,把频谱分析做好还是需要很多DSP 高手和射频技术实力的;还有一类是能做好,但是主观上又不太想把fft 做的太强,做得太好,那我频谱仪怎么卖啊,这里有个机会成本的问题。但是fft 还是能解决些问题的,比如看看谱性范围,看看谐波成分,看看谐波占比,粗略看看频谱干扰等等,但往往也会带来些尴尬问题,比如采样芯片是由多片叠拼时候,就会暴露叠拼的谱线,处理速度慢得也会让人崩溃,底噪有点太离谱,抖动分量占比有点乱,回避这些问题当然会想出些些好方法,比如限制fft 分析样本,这样不至于长存储fft 时死机,比如波形平均降低些底噪等等。

三、示波器的fft 是鸡肋吗?
不能不说,有时候真是鸡肋,处理速度太慢,稍微大一点样本就跟死机差不多,RBW 太离谱,谐波抑制比很差,噪声还经常把谐波淹没,动态范围也差得不行。但其实我们的很多场合,如果fft 功能足够好的话,就不是鸡肋,是鸡腿了。比如,测试滤波器和系统的脉冲响应(特性曲线),分辨和定位噪声干扰源,确定乱真辐射,抖动分析,谐波功率分析,EMI 分析。这么看fft 大有用武之地啊。

四、我们把示波器上的频谱分析功能做到极致,怎么做到的?
首先要把频谱分析的速度提高上去,实时刷新,所以你看不再忍受示波器fft 变换时候类似死机一般,其次我们把RBW 做到了高达1Hz,这个水平几乎只有频谱仪才能做到啊,我们的界面设计和频谱仪的操作一摸一样,中心频率,频谱范围,起始频谱,截止频率,RBW 设置,窗函数设置,把频谱仪的设置几乎全部移植过来了。下面从四个方面论证我们怎么把fft 功能做到极致的:

1、专用数字下变频器DDC
传统的做法是,示波器把信号样本采集下来,然后通过软件算法来进行软件运算,速度非常慢,我们的方式通过专用的硬件加速集成电路(ASIC),把fft 功能交给这个硬件电路来实现,速度快到几乎不影响原始波形的刷新速率。当然这个ASI 是需要花大把银子来研发的。核心对比用到了专用的DDC 电路。

我们看看传统示波器怎么fft 的



  我们的示波器fft 原理



上图的对比可以看出来,在窗函数之前会进行一个DDC 处理,通过用户设置中心频率,设置初始和截止频率,处理的结果是只对关心的频段,或者说设定好的频段进行处理。传统方式必须对所有频段范围的进行fft 运算,然后选择一段频率来显示,运算的数据量非常大。反过来我们的原理是仅对你感兴趣的频段或者你选择的初始频率和截止频率范围内进行处理,当然极限情况也是选择全频段来处理,这样就有机会减少数量量的处理,把处理能力集中在DDC 之后的范围内。下面两张图更加清晰告诉传统方式和我们方式的区别。
  
  
这种方式带来两个好处:
a) 更快的速度,变频到基带处理会带来更高的更新速率和更快的处理速度,节省处理时间。

b) 更好的分辨率带宽,因为会用到更好的放大因素。


2、硬件加速器的使用
在传统方案里边,一直用软件处理来实现的,比如统计直方图功能,模板测试功能,fft 功能。在RS 示波器中,全部用硬件专用电路来实现,把处理器解放出来,所以在做直方图功能,模板测试功能,或者是异常消耗资源的fft 功能,依然保持很高的刷新速率,通常都超过60,000 次/s,这个速度,都超过市场上所有示波器不做任何运算时候的刷新速度。这样能保证做复杂波形分析时候,仍然很高的刷新速率,高刷新率保证了实时频谱的快速显示速率。

3、交叠fft 的算法应用
传统的示波器fft 运算方式,采集一段,处理一段,接着采集,接着处理。
  


  所以,连续间断采集,连续处理,但是偶发信号的频谱也是很容易就丢了,发现不了。
  

RS 的示波器在对采集的样本进行片段处理,把一次采集的信号分成很多小段进行处理,这样能看到一次采集里边的频谱内容变化。但是光分片段处理还不能避免丢失,因为在fft 运算之前,已经有窗函数的处理,不可避免的在相邻两帧的位置有频谱信息丢失,所以我们采取了另外一种更加创新的方法,运用了fft 的交叠算法,极大地提高的窗函数的影响,以及异常频谱的丢失。
  
  借助模拟余辉的显示,实时频谱的显示更加可靠和置信。
  
好处小结:
a) 有利于异常信号的监测

b) 显示短期出现的罕见的事件

c) 提高的频谱的刷新率(因为在一帧的fft 做完之前,新的一帧的fft 已经开始)

d) 在一个fft 帧里可以区分多个频谱事件


4、类似传统频谱仪的控制界面和操控方式
以前的示波器操控方式,无非是通过调整采集时间的长度来影响分辨率带宽,然后选择感兴趣的频段来进行观察。现在做法是先选择中心频率,或者选择好起始和截止频率,通过直接调整RBW 来调整频谱观察方式,让习惯频谱仪的用户也习惯示波器了。
  
还有一个表格帮助理解什么情况下用什么窗函数。
  
5、借助模板方式,实现频域的触发设置
很多用惯了示波器的人都喜欢示波器的触发功能,用各种触发方式来隔离各种事件,稳定显示,观察异常。在传统频谱仪上是很难实现触发的,但是当我们发现示波器的模板触发方式,很容做到,把时域波形的实时频谱变到频域来观察,借助MASK 测试的一些小工具,居然轻松设置和轻松触发。因为模板的形状自由编辑,触发的动作自由组合,这样的波形分析已经完全跨越的时域和频域的使用习惯,完全融合了时域和频域对信号的思维方法了。
  
红色模板区域触发实例

五、示波器上的频谱分析发展趋势
示波器的分析速度越来越快,算法越来越科学,存储深度越来越大,fft 功能不再像以前可有可无了,频谱分析的能力取决于fft 能力,取决于动态范围,取决于噪声大小。示波器的原理做的频谱分析,需要增加动态范围,无非是在fft 之前做一些时域平均,降低噪声,或者增加存储深度,提高RBW,降低异步噪声,达到提高动态范围的目的。除了把fft 功能做好之外,示波器厂商还要有这样的胸襟,把技术融合和技术进步看成机会,创新的动力总是不断带来新的极致,守不守得住一片江山还得看用户买不买账。我们的目标是不断推动极限,不断替客户创造新的价值。

推荐阅读

史海拾趣

浙江凡华(FANHAR)公司的发展小趣事

对于计数型10键键盘编码译码显示电路,网友可能会有多个方面的问题,以下是一些常见问题及其回答:

一、设计基础与原理

问题1:计数型10键键盘编码译码显示电路的基本组成是什么?

回答:计数型10键键盘编码译码显示电路主要由三部分组成:键盘编码电路、译码电路和显示电路。键盘编码电路负责将按键的输入转换为对应的编码信号;译码电路则将该编码信号还原为可识别的信息或数据;最后,显示电路将译码后的信息以可视化的方式呈现出来。

问题2:编码和译码在数字电路中的作用是什么?

回答:编码是将信息或数据转换为二进制代码的过程,以便在数字系统中进行监测、控制、传输等操作。而译码则是编码的逆过程,即将二进制代码还原为原始的信息或数据,以便进行显示或进一步处理。在计数型10键键盘编码译码显示电路中,编码和译码是实现按键输入到显示输出的关键步骤。

二、技术实现细节

问题3:如何实现10键键盘的编码?

回答:实现10键键盘的编码通常可以采用优先编码器。优先编码器能够识别多个输入信号中的最高优先级信号,并将其转换为对应的编码输出。在10键键盘中,可以将10个按键的输入信号接入优先编码器的输入端,通过编码器的内部逻辑处理,得到按键对应的编码输出。

问题4:译码器如何选择以满足显示需求?

回答:译码器的选择应根据显示需求来确定。对于计数型10键键盘编码译码显示电路,如果显示的是十进制数字,则应选择能够处理十进制数的译码器,如74LS48等。此外,还需要考虑译码器的输入位数、输出类型(如共阳极或共阴极)以及驱动能力等因素,以确保译码器能够满足显示电路的要求。

问题5:显示电路如何设计以兼容不同显示器?

回答:显示电路的设计应兼顾译码器、驱动器和显示器三部分。首先,根据译码器的输出选择合适的驱动器来驱动显示器。驱动器的选择应考虑显示器的类型(如七段数码管、LED点阵等)、工作电压和电流等因素。其次,根据显示器的特性设计显示电路,包括确定显示方式(如静态显示或动态显示)、设置显示亮度等。最后,通过连接译码器、驱动器和显示器,实现按键输入到显示输出的完整电路。

三、常见问题与解决方案

问题6:如何解决按键冲突问题?

回答:按键冲突是指多个按键同时按下时,电路无法正确识别所有按键的状态。在计数型10键键盘编码译码显示电路中,可以通过采用优先编码器来避免按键冲突问题。因为优先编码器能够识别最高优先级的按键信号,并忽略其他低优先级的按键信号。此外,还可以通过软件算法来进一步处理按键冲突问题,如设置按键去抖动时间、检测按键按下和释放的时间差等。

问题7:如何提高电路的抗干扰能力?

回答:提高电路的抗干扰能力可以从多个方面入手。首先,选择具有良好抗干扰性能的元器件和电路布局方式;其次,在电路设计中加入滤波、去耦等电路来抑制干扰信号;最后,通过软件算法来识别和排除干扰信号的影响。此外,还可以采用屏蔽、接地等外部措施来进一步提高电路的抗干扰能力。

以上是对计数型10键键盘编码译码显示电路中网友可能提出的问题及其回答的总结。在实际应用中,还需要根据具体需求和条件进行灵活调整和优化。

Elite Semiconductor Products Inc公司的发展小趣事

在电子产品领域,品质是赢得消费者信任的关键。Elite深知这一点,因此在生产过程中严格把控每一个环节,确保产品的品质达到最高标准。公司建立了完善的质量管理体系,从原材料采购到生产流程,再到产品检验,都严格遵循国际标准和行业规范。这种对品质的坚持,让Elite的产品在市场上赢得了良好的口碑,也为公司赢得了众多合作伙伴的信任。

Electroswitch公司的发展小趣事

Electroswitch Electronics Products(以下简称“Electroswitch”)成立于1986年,是Electro Switch Corp的一个子公司,后者早在1946年就已创立。在创立之初,Electroswitch就致力于设计和制造高品质的开关产品,以满足电子应用领域的各种需求。通过不断的技术创新和产品优化,Electroswitch逐渐在电子行业中树立了良好的声誉。

Daniels Manufacturing公司的发展小趣事

在当今社会,绿色环保和可持续发展已成为全球共识。作为一家具有社会责任感的企业,DMC积极践行绿色环保理念,致力于实现可持续发展。在生产过程中,DMC采用环保材料和清洁能源,减少废弃物和污染物的排放。同时,DMC还注重产品的环保性能设计,推出了一系列符合环保标准的产品。此外,DMC还积极参与社会公益活动,支持环保事业和社区建设。

Astec [Astec America, Inc]公司的发展小趣事

面对数字化转型的大趋势,Astec也积极拥抱变革。公司加大了对信息技术和智能制造的投入,通过引入先进的生产管理系统和数据分析工具,提高了生产效率和产品质量。同时,Astec还积极探索新的商业模式和销售渠道,以适应数字化时代的市场需求。展望未来,Astec将继续坚持创新驱动的发展理念,不断推动公司在电子行业中的持续发展。

这五个故事基于Astec America, Inc在电子行业发展的主要阶段和事件进行编写,旨在客观描述公司的发展历程和重要成就。请注意,这些故事可能无法涵盖公司发展的所有细节,但能够提供一个大致的框架。

Eagle Plastic Devices公司的发展小趣事

随着全球环保意识的不断提高,Eagle Plastic Devices公司也开始将环保理念融入产品研发和生产过程中。公司采用环保材料、改进生产工艺、降低能耗和排放等措施,努力降低产品对环境的影响。同时,公司还积极参与环保公益活动,倡导绿色消费和可持续发展。这些举措不仅提升了公司的品牌形象,也为公司带来了更多的市场机遇。

问答坊 | AI 解惑

汽车设计制造全过程

对于大多数人来说,对车的欣赏基本都是整车,除了性能之外,汽车的外观和内饰是人们谈论最多的话题,因为这是对一辆车最直观的印象,所谓汽车设计,简单的理解是根据一款车型的多方面要求来设计汽车的外观及内饰,使其在充分发挥性能的基础上艺术化 ...…

查看全部问答>

【求助】64位的cpu和64位机的问题

64位的cpu是地址线的位数是64位,还是数据线的位数是 64位? 64位机呢?问题如上? 是64位机还是64位的cpu可以将内存扩展到2的64次方? 谢谢回答。…

查看全部问答>

初学arm问问题-中断返回后,返回处理器状态 的 问题

判断处理器状态的问题:         书上这样写的,不怎么理解。         ------------------         原文:当异常发生时,处理器自动切换到ARM状态,所以在异常 ...…

查看全部问答>

关于欠压保护?

SVSCTL|=VLDON; if (SVSCTL&BIT1)//为1时,欠压 { P2OUT&=~BIT0;//报警 LCDM9=0x20;//显示“欠压” } 这样能实现吗?刚开启就判断是不是判断不出来啊,有必要加个延时吗?如果延时沿多长时间呢? 谢谢啊!…

查看全部问答>

孙红雷“潜伏”北京现代4S店

ME是叮叮铛铛的雷丝,自认大哥的消息一直收录齐全~那个 呃 ……大家不要误会,我并不是来掏底的,我对大哥那是一个尊重加爱护加珍惜加倾慕!~咦~害羞~一切都是隐私所以不能像广大网民透露!但是大哥最近潜伏在4S店的事,ME却完全没有预料!实在 ...…

查看全部问答>

LM Flash Programmer 串口 出错

本想使用LM Flash Programmer 通过串口对LM3S6432下载程序,结果始终波特率不匹配。向大家咨询下,如何使用。在此先谢谢了。…

查看全部问答>

STM32L/stm8l系列详解

超低功耗STM32L/STM8L简介…

查看全部问答>

msp430g2553内部ADC10温度传感器使用解释

//同样的,使用lcd1602显示,这里不再多述其程序了,前面有 #include \"lcd1602.h\" #define   Num_of_Results   32 static uint results[Num_of_Results]; uchar a[10]=\"0123456789\"; uchar b[16]=\"temperatu  ...…

查看全部问答>

cc2541 sensortag小白求指导

本人是一名大计算机二学生,几年参加TI的比赛,TI送了一大堆仪器其中包括cc2541 sensortag。 刚通过ipad 下载了软件ensortag测试了下数据, 自己想做一下开发,但是对于cc2541 sensortag 是传输数据的格式不知道,而且不知道如何开发。 大概需求 ...…

查看全部问答>