单片机音乐频谱Word文件下载.docx
《单片机音乐频谱Word文件下载.docx》由会员分享,可在线阅读,更多相关《单片机音乐频谱Word文件下载.docx(16页珍藏版)》请在冰豆网上搜索。
关键词:
单片机;
傅里叶;
LED;
1.引言…………………………………………………………………………………………1
2.方案设计……………………………………………………………………………………2
2.1设计要求……………………………………………………………………………2
2.2整体方案设计………………………………………………………………………3
2.3整体方案组成………………………………………………………………………6
3.系统电路设计………………………………………………………………………………6
3.1单片机主控电路设计主操纵器………………………………………………………6
3.2LED显示模块电路设计………………………………………………………………7
4.软件设计………………………………………………………………………………………8
4.1软件设计流程图………………………………………………………………………8
5.系统的测试…………………………………………………………………………………8
6.结论…………………………………………………………………………………………9
7.参考文献……………………………………………………………………………………11
8.附录…………………………………………………………………………………………14
1.引言
本文介绍的音乐频谱显示器可对mp3、电话、运算机输出的音乐信号进行实时的频谱显示。
系统采纳增强型8051单片机STC12C5A60S2为主操纵芯片,通过单片机内置的ADC对音频信号进行采样,把持续信号离散化,然后通过快速傅里叶变换(FFT)运算,在频域计算出音频信号各个频率分量的功率,最后通过双基色LED单元板进行显示。
在显示的频率点不多的情形下,本系统比采纳DSP或ARM作为主操纵芯片的设计方案具有电路结构简练,开发、生产本钱低的优势。
2.方案设计
设计要求
1.单片机自带AD转换,如此省去外围AD电路。
2.操纵LED随着音乐跳动,需要明白得傅里叶原理。
整体方案设计
经分析,将系统分为两个部份,一个是由单片机组成的主控。
另一部份是LED显示部份,单片机对接收到的音频进行处置通过傅里叶换算后在LED显示,5V稳压电源给各个部份供电。
该系统实现的方式有很多种,下面将列出大伙儿最常经常使用到的实现方案。
系统框图如图1所示
显示电路
单片机
电源
音频信号
图1音乐频谱整体系统框图
该系统由音频信号预处置电路、单片机STC12C5A60S2操纵电路、LED频谱显示电路等部份组成。
图l为系统整体设计原理框图。
图1系统整体设计原理框图
系统各组部份的功能:
(1)音频信号预处置电路要紧对输入的音频进行电压放大和电平提升。
(2)单片机STC12C5A60S2操纵电路采纳内置的ADC对音频信号进行采样量化,然后对量化后的音频数据采纳FFT算法计算其频谱值,再将各频谱值进行32级量化。
(3)LED频谱显示电路在单片机的操纵下,负责将FFT计算取得的音频信号的各个频点的大小进行直观显示。
图2音频信号预处置电路
音频信号预处置电路见图2所示,对输入的音频进行电压放大和电平提升。
电话、运算机输出的音频信号Vin通过RP1进行电压调剂后,经集成运放LMV358反相放大10倍(Av=-R3/R2=-10),提高系统的灵敏度。
选用单电源供电的运放LMV358,一方面能够简化系统电源电路的设计,直接采纳系统的+5V供电即可;
另一方面其输出端静态电压为VCC/2,即。
放大后的音频信号和这叠加后变成直流电压信号,知足后面单片机内置的ADC对输入电压量程的要求。
另外,LMV358为轨到轨输出运放,它可在+5V单电源供电条件下仍具有较大的动态输出范围。
STC12C5A60S2单片机是宏晶科技生产的新一代单时钟/机械周期(1T)8051单片机,具有高速、低功耗及超强抗干扰等特点,指令代码完全兼容传统8051,但速度快8-12倍;
内部集成MAX810专用复位电路,2路PWM,8路高速10位A/D转换(250K/S)等资源[1]。
专门是它带硬件乘法/除法指令,使乘法指令执行时刻从传统8051的48个晶振周期减少到4个晶振周期,使需要大量乘法运算的FFT运算速度取得大幅度提高。
在本系统中,STC12C5A60S2单片机负责完成对音频信号进行A/D变换,然后采纳FFT算法计算音频信号频谱,并将计算结果输出到LED频谱显示电路。
(1)音频信号的A/D变换
依照香农采样定理,一样采样频率至少应为所采样音频信号最高频率的2倍。
由于人耳能够感受的频率为20Hz-20kHz,因此理论上采样频率最高取40kHz。
本设计采纳单片机STC12C5A60S2内置的ADC对音频信号进行采样、量化。
STC12C5A60S2单片机的A/D转换口在P1口(),有8路10位的高速ADC,其输入电压量程为0-Vcc,转换速度可通过ADC_CONTR特殊功能寄放器的SPEED1,SPEED0位进行操纵,速度最快可设置为每90个时钟周期转换一次。
在外接晶振为24MHz时,ADC的转换速度可达到330KHZ,完全可知足对音频信号的采样需要。
(2)音频信号频谱值的计算
咱们采纳快速傅里叶算法(FFT)来计算音频信号的频谱值。
依照FFT运算规律,如ADC以fs的采样频率取N个采样点,通过FFT运算以后,就能够够取得N个点的复数序列。
一样为了方便进行FFT运算,通常N取2的整数次方:
N=2L(L为正整数)。
这N个点的FFT结果,每一个点就对应着原始信号的一个频率点,即第n点所表示的频率为f=n×
fs/N,n=0,1,…,(N-1);
该点的模值除以N/2确实是对应该频率下原始信号的幅度(关于第1个点那么是除以N);
该点的相位即是对应该频率下原始信号的相位。
由于FFT结果的对称性,通常只利用FFT运算后的前N/2个点的数值。
本系统每隔10ms采样一次128个点,通过FFT运算后将取得128个频率点。
由于FFT结果的对称性,咱们选取前64个点进行显示。
此刻FFT算法已进展出多种形式,本系统采纳按时刻抽选(DIT)的基-2FFT算法,这种算法程序相对较简单,节省存储单元,运行效率较高,比较适合用单片机编程实现。
DIT基-2FFT算法要紧由倒位序运算和多级蝶形运算实现。
DIT基-2FFT算法通常将原始数据序列倒位序存储,运算后的结果那么按正常顺序输出。
一样的数字信号处置的教材都介绍雷德(Rader)算法,通过“反向进位加法”将原始数据序列进行倒位序存储[2]。
雷德算法的灵活性较大,但在本系统中,参与运算的数据点数只有128个,通过预先编制倒位序查询表,采纳查表方式实现倒位序操作速度会更快。
依照DIT基-2FFT算法原理,N点FFT运算由log2N级,每级N/2个蝶形运算,共(N/2)log2N个蝶形运算组成。
每一个蝶形运算结构见图3所示[2]。
图3按时刻抽选蝶形运算结构
蝶形运算结构图中,m表示第m级的蝶形运算,k为蝶形运算第一节点所在行数,b为蝶形运算两节点距离,b=2m-1,WNr为旋转因子,WNr=cos(2πr/N)-jsin(2πr/N)。
每一个蝶形结构完成下述大体迭代运算[2]:
设Xm=Rm+jIm,将式
(1)转变成实部和虚部的表示形式,取得:
由上面式
(1)、式
(2)可见,一个蝶形运算需要一次复数乘法Xm-1(k+b)WNr及两次复数加(减)法。
在单片机系统中编程实现时,需把复数运算转变成实数运算。
同理,将式
(2)转变成:
将sin、cos函数做成表格sin_tab[128]、cos_tab[128],直接查表可提高运算速度。
系统中采纳5*11个不同颜色的草帽LED进行显示,每列显示音频信号的一个频率点,每列LED点亮的高度表示该频率点幅度的大小。
整个显示板一共有5列,工作的时候,能够看到每列依照频率幅度的大小在跳动。
整体系统组成
本系统硬件部份由单片机主控电路、LED显示部份、音频搜集等部份组成,其中单片机主控电路有外接晶振,电源供电电路阻等部份组成。
软件部份详细见下文。
单片机全系统如以下图2所示。
3.系统电路设计
单片机主控电路设计
单片机主控模块包括了振落电路、音频搜集电路,同时接入了各个模块的接口,保证了整个系统的灵活性。
单片机是整个系统的操纵中枢,它指挥外围器件和谐工作,从而完成特定的功能。
硬件实现上采纳模块化设计,每一模块只实现一个特定功能,最后再将各个模块搭接在一路。
这种设计方式能够降低系统设计的复杂性。
操纵电路的核心器件是由美国Atmel公司生产的AT89S52单片机,属于MCS-51系列。
AT89S52是一种低功耗、高性能的CMOS8位微操纵器,具有8K在系统可编程Flash存储器,采纳的工艺是Atmel公司的高密度非易失存储器技术;
片上Flash许诺程序存储器在系统可编程,亦适于常规编程器;
在单芯片上,拥有灵巧的8位CPU和在系统可编程Flash,使得AT89S52为众多嵌入式操纵应用系统提供高灵活、超有效的解决方案;
价钱低廉、性能靠得住、抗干扰能力强。
因此普遍应用于工业操纵和嵌入式系统中。
单片机主控电路原理图如下所示:
图单片机主控电路原理图
LED显示模块电路设计
4.软件设计
软件设计流程图
FFT倒序流程图
FFT计算流程图
5.系统测试
制作的进程中第一碰到的问题是LED如何组装,通过查阅资料发觉,能够利用LED的管脚相互依照电路图连接起来,那个时候主若是利用万用表来测试,LED灯到底有无坏掉的。
通电后,在无音频输入时,LED应该无闪烁跳动现象。
在制作完成的时候,发觉LED灯闪烁,那个时候,在音频输入端接入了47p的电容,如此就解决了那个问题。
6.结论
本系统采纳增强型8051单片机STC12C5A60S2实现音乐频谱显示,该方案硬件电路设计简单、本钱低,并具有较高的有效价值。
本方案是通过ADC采样输入的音频信号,ADC采样完成以后,将数据进行倒序排列并进行FFT运算,结果通过TFT液晶显示出来。
由于采纳的处置器的处置能力的缘故,不能做到很高的采样频率和很精细的频率分辨率,要提高系统的频率分辨率,就需要增加采样点数。
能够借助PC的壮大处置能力,将采样的数据通过预留的串口传送给PC,在PC上完成FFT运算和显示,这确实是虚拟仪器的方式,实际工作中应用前景也超级大。
谢辞
感激教师对咱们的指导。
完成了那个实训任务,尽管结果差强人意,可是仍是有进步的,有收成的。
希望以后在学习生活中能继续好勤学习。
7.参考文献
[1]宏晶科技.STC12C5A60S2系列单片机械件手册[M].2020.
[2]程佩青.数字信号处置教程(第二版)[M].北京:
清华大学出版社,2001.
单片机的LED显示屏开关技术(第2版)[M].北京:
北京航空航天大学出版社,2020.
作者简介:
吴永德(1980―),男,讲师,从事电子技术专业教学及研究。
罗萍(1979―),女,讲师,从事运算机技术专业教学及研究。
附录:
电路图:
程序:
#include<
>
//"
"
#include<
#defineLon