0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

做一个简易示波器的思路和FFT分析

电子森林 来源:电子森林 作者:亢嘉晨 2021-04-01 10:20 次阅读

项目需求

完成对板上音频信号的采集和波形显示,可以通过手机播放音乐或App产生音频信号的方式提供声音信号源,通过板上电路的放大、MCUADC的采集以后将波形显示在OLED屏幕上,可以通过板上按键的操作在两个方向(横轴-时间;纵轴-幅度)来扩展、压缩波形的显示,按键的功能可自行定义;

实现信号发生器的功能,能够产生20KHz以内的正弦波、三角波、方波三种常用波形,通过按键的操作能够实现频率可调、幅度可调;

能够通过Ain管脚测量外部模拟信号(0-3.3V,DC-200KHz),并能够对外部的周期性波形测量其周期和峰峰值

能够对采集到的信号进行FFT变换,并在屏幕上显示其基频及低次谐波的分量

实现的思路

因为我是对stm32是一个完全零基础的的学生,所以首先就是对软件和芯片的学习,通过直播课程先对stm32有一个大概的了解,对IDE、Pro等软件有一个初步的学习,然后是对于原理图 的学习,了解做一个简易示波器需要哪些引脚。初步的学习了解后就要开始上手实践,先是要看一些相关的比如ADC、信号发生器的例程,然后仿照例程自己去实践做一些工程。有了一点基础以后就可以开始做这个项目了。

然后项目实现大概的思路就是:ADC对模拟信号采样、量化->映射到坐标轴上形成波形->显示相关的参数->通过RC低通滤波实现方波、正弦波、三角波的生成->调整采样率占空比等改变波形->FFT变换获得频谱。

整体思路是先做一个一个模块,如ADC、信号发生、数据显示等,然后整合在一起形成想要的项目,最后对项目进行优化调整。

完成的功能及达到的性能

完成的功能为对音频信号进行采集并形成波形,可以在时间上扩展压缩波形

实现信号发生器的功能,能够产生20KHz以内的正弦波、三角波、方波三种常用波形,通过按键的操作能够实现频率可调

能够通过Ain管脚测量外部模拟信号

对采集到的信号进行FFT变换,显示频谱

遇到的主要难题

本次项目遇到的最大的难题就是解决y轴自动缩放功能,我本来使用的是固定的y轴(0-5V),有时候图形看起来很难看,受大佬指点然后就准备做一个自动缩放的y轴,结果不知道为什么,y轴相关的数据全都显示不出来了,这也就是我视频中没有y轴数据的原因,开始是忘记了改设置导致浮点数不能直接printf,更改好设置后,一直报错好像意思是Flash内存不足,然后我尝试使用网上的方法一是通过 sprintf 将浮点数转换成字符串输出,另一种是分解整数和小数部分,分别输出,结果都没能实现,在我想改回固定y轴之前,板子死机无法复位,就导致了现在的版本,板子死机无法复位的问题最终是问了硬禾的老师解决的。

还有一个问题就是因为之前没接触过stm32,对于oled屏幕以及按键使用不知所措,花费了较多的时间学习例程和看别人的做法,然后实在是对FFT理解不够,在FFT花了很多时间也没做出来,后来参考了别人FFT的部分代码才能用。

未来的计划建议

因为时间不足和能力有限,没能在规定时间内完成所有的性能指标要求,我计划在之后有时间的时候尽量将y轴自动缩放完善,然后自己编写出符合要求的FFT。

然后通过这次寒假在家的练习,我从对单片机嵌入式系统一无所知到现在的初步了解让我对于这方面的内容产生了极大的兴趣,以后我会在课余时间多去接触相关的内容,争取做出更多有意思有用的东西来。

我的建议是我感觉这个项目老师的课程不够详细,两个多小时的课程很多东西都被压缩了,当然也可能是因为我基础太差或者是老师要考虑各方面的因素,我希望以后的课程能够更系统更注重带我们实操一些。

总结

这个项目极大的丰富了我的寒假生活,是我上大学以来为数不多觉得收获蛮大的假期,虽然我没能完成所有的项目需求,但是在这过程中学习到的知识以及对我实践能力的培养让我受益匪浅,硬禾的老师也是很尽心尽力,我板子死机的问题直接拉了个群给我解决,总体而言,通过这次项目我学到了很多东西,我希望以后也能多参加类似的活动来锻炼自己,充实自己的生活。

原文标题:北理工亢嘉晨同学制作的简易示波器和FFT分析

文章出处:【微信公众号:FPGA入门到精通】欢迎添加关注!文章转载请注明出处。

责任编辑:haq

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 示波器
    +关注

    关注

    110

    文章

    5646

    浏览量

    181748
  • FFT
    FFT
    +关注

    关注

    15

    文章

    425

    浏览量

    58631

原文标题:北理工亢嘉晨同学制作的简易示波器和FFT分析

文章出处:【微信号:xiaojiaoyafpga,微信公众号:电子森林】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    示波器FFT 功能怎么调?

    示波器fft功能-示波器中的快速傅立叶变换 FFT功能非常有用。是德科技与您分享keysight示波器f
    的头像 发表于 03-19 18:04 698次阅读
    <b class='flag-5'>示波器</b>的 <b class='flag-5'>FFT</b> 功能怎么调?

    如何用示波器进行FFT分析

    示波器仪器仪表
    安泰仪器维修
    发布于 :2024年02月27日 17:29:36

    介绍示波器频率响应、FFT功能以及探头衰减比对测量

    是指示波器能够准确测量的频率范围。FFT功能是指示波器在频域上对信号进行分析的方法。而探头衰减比则是指示波器用于测量时对信号进行衰减以适应不
    的头像 发表于 01-19 15:54 433次阅读

    实时频谱分析FFT功能如何采集信号?

    实时频谱分析FFT功能如何采集信号? 实时频谱分析仪是一种用于分析信号频谱特征的仪器,它可以实时监测和显示信号的频谱分布情况。实时频谱分析
    的头像 发表于 01-19 15:01 275次阅读

    用1452的FFT分析数据,怎么样能把经过FFT之后的值都读出来呢?

    您好: 我现在想用1452 的FFT 分析,但是我怎么样能把经过FFT 之后的值都读出来呢?
    发表于 11-29 06:32

    请问如何用stm32做一个FFT变换?

    请问如何用stm32做一个FFT变换?官方的库有FFT函数吗
    发表于 11-03 08:16

    泰克MDO3系的频谱分析仪功能和其他的示波器频谱仪功能的区别

    都说泰克MDO3系是个很特殊的存在,集成了示波器逻辑分析仪和频谱仪的功能。但是总所周知所有的示波器都有FFT功能也能实现频谱分析,那么MDO
    的头像 发表于 10-23 13:50 231次阅读
    泰克MDO3系的频谱<b class='flag-5'>分析</b>仪功能和其他的<b class='flag-5'>示波器</b>频谱仪功能的区别

    基于单片机的FFT算法分析与实现

    电子发烧友网站提供《基于单片机的FFT算法分析与实现.pdf》资料免费下载
    发表于 10-20 11:37 2次下载
    基于单片机的<b class='flag-5'>FFT</b>算法<b class='flag-5'>分析</b>与实现

    使用C51搭的简易示波器的资料和程序

    使用C51搭的简易示波器的资料和程序合集
    发表于 09-22 06:18

    基于单片机的简易示波器设计

    学习单片机,通过做简单的小项目,是成长最快的一种方法。今天就给大家分享一个制作简易示波器的小项目,代码开源,希望对初学者有帮助。
    的头像 发表于 08-30 09:22 950次阅读
    基于单片机的<b class='flag-5'>简易</b><b class='flag-5'>示波器</b>设计

    Proteus:简易示波器

    Proteus:简易示波器
    的头像 发表于 06-14 11:35 1242次阅读
    Proteus:<b class='flag-5'>简易</b><b class='flag-5'>示波器</b>

    FFT应用中为什么要采用时间窗呢?

    傅里叶变换(FFT)实现了时域到频域的转换,是信号分析中最常用的基本功能之一。本文将描述FFT应用中为什么要采用时间窗,以及RBW与时间窗的关系。
    的头像 发表于 06-12 10:57 1423次阅读
    在<b class='flag-5'>FFT</b>应用中为什么要采用时间窗呢?

    基于STM32的开源简易示波器项目

    该项目是基于正点原子精英板制作的一个简易示波器,可以读取信号的频率和幅值,并可以通过按键改变采样频率和控制屏幕的更新暂停。
    的头像 发表于 05-08 09:35 1320次阅读
    基于STM32的开源<b class='flag-5'>简易</b><b class='flag-5'>示波器</b>项目

    什么是FFT分析的负频率

    通常我们分析的信号是一个纯实数信号,没有虚部。经典的例子当然是用正弦波。当我们用傅立叶变换分析,通常是FFT算法,分析信号时,绝大多数人都知道我们将得到的频率结果位于0Hz到奈奎斯特频
    的头像 发表于 05-05 10:02 1568次阅读
    什么是<b class='flag-5'>FFT</b><b class='flag-5'>分析</b>的负频率