使用单片机和FFT算法显示波形(高分!!!急救!!)

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了使用单片机和FFT算法显示波形(高分!!!急救!!)相关的知识,希望对你有一定的参考价值。

我要做一个projet,内容是输入电流或电压等信号,经过单片机(在单片机中使用fft程序),最后能在电脑屏幕上显示出波形图,怎么做呢?老师给我们找到了一个fft的c程序(必须是1024点的),但是他说还需要改,做这个projet我需要确切了解fft算法吗?或者只需要了解什么是fft的输入值就可以了,输入值是什么?整个projet需要用到什么电子元件呢?通过什么可以把fft的结果转化为波形?单片机为PIC18F45

fft算法是频谱分析,输入电流或电压信号首先要使用模-数转换电路,根据精度和速度的不同要求,采用的电路也差别很大。fft的输入不外乎就是一串采样数据,以及这些数据的采样时间间隔是多少,这个你需要自己去分析或者代码中有注解就更好。fft最终可能会输出一个数组作为它的分析结果,你可以通过串口输入到电脑中,电脑通过串口接收到单片机发过来的数据以后,就可以通过一些数据分析工具把曲线显示出来。我见过用fft算法配合高速采样电路来分析钢琴音准和音色(即频谱)的实际产品,价格很贵的哦。 参考技术A 涉及到单片机跟上位机通信得问题,有模块一般用串口的比较多 网上去找吧 单片机的硬件应该考虑AD转换器(1024点的话 就用10bit特的AD吧) 若选用 STC的单片机自带10bitAD 可以不用考虑AD的问题 你的软件主要会涉及到两个部分吧 单片机的程序 和 上位机的显示程序(VB还是delphi就自己目前状况定吧) 难点还在于通讯这一块 如果以前没接触过花的时间可能会长点 还有你电压信号一般是工频的吧 采样定律要求采样率是它的两倍以上 所以100HZ以上的了 而且事实上要大上好几倍 最好500Hz以上吧(周期就倒数下)现在一般都用数据采集卡了 在大项目中单片机有点古老的感觉 你这课题用LabVIEW的还不错 几个框图一拉就完了 一周可以搞定 呵呵 不过以后要走技术的路 还是要一步一个脚印稳扎稳打从单片机起步吧~~~好了就这么多了,你也不必再问了,下次上线我不知道是什么时候了~~~

51单片机+PCF8591的多波形发生器仿真程序(正弦波 三角波等可调)

51单片机+PCF8591的多波形发生器仿真程序(正弦波 三角波等可调)


  • Proteus仿真效果

仿真时,首先点击-选择波形,如果看不到波形显示在模拟示波器上,可以将鼠标移动到显示屏幕区域内,滚动鼠标滚轮来调节,电压幅值。

  • 波形有:三角波,方波,正弦波
    ![

  • 程序架构

示例主程序代码

/*-------------------------------
51单片机+PCF8591的多波形发生器(正弦波 三角波等可调)
--------------------------------*/

以上是关于使用单片机和FFT算法显示波形(高分!!!急救!!)的主要内容,如果未能解决你的问题,请参考以下文章

如何使用 NAudio 对波形文件执行 FFT

python 问题。。。 对一个波形文件做fft,然后怎么获取那些频率分量? numpy有这个函数

如何使用示波器FFT功能查找感兴趣的FFT频率点?

基于单片机8155语音播放波形显示设计-毕设课设资料

Python 对 25fps 动画的波形数据执行 FFT

51单片机+PCF8591的多波形发生器仿真程序(正弦波 三角波等可调)