




已阅读5页,还剩2页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
STM32 音乐频谱分析2011-12-11 03:06:03|分类: 制作类 |标签: |举报 |字号大中小订阅 呵呵,在昨天的基础上,进行了改进。采样频率为12.3Khz,256点FFT。视频: 其实这玩意不难做,音频信号采集,我的方法是将电脑出来的信号用TDA2822放大,然后给单片机AD口,剩下就是软件上的了。 说起TDA2822,还是挺不错的一款功率放大芯片,本只想用来做信号放大用的,但baidu了下它和看它的数据手册,都多用来做小功率功放。 呵呵,那就也做一个吧。 TDA2822的典型应用电路如下: 这电路很普通,没什么特别,参数也不用调整,直接搭出来,就正常的工作。 接下来就是将放大后的信号给单片机,这里问题就来了,电路中C4,C5是干什么,给单片机的话要不要加? 于是开始baidu,google,但没找到合适解答,于是翻了翻模电书,里面还真讲到功率放大器, TDA2822是OTL功放,输出电容起耦合作用,因为OTL功放在在静态时输出端都会有Vcc/2伏的输出,这样会搞坏喇叭,所以需要加个电容,隔离。单片机处理的话就不用输出电容了。 如果用示波器一看,结果就很明显,如下图,下面的信号是加了电容,上面是没加。 做好电路后理所当然的准备将功放输出端接到单片机上,但突然一想,不对啊,功放我给11.1V供电,那输出不就有5V左右电压?而STM32是3.3V! 不烧了才怪! 幸好TDA2822工作电压范围在1.812V间,所以就给它3.3V行了。 这样一来基本就没问题了。 第二个的输出电容还是保留,作个对比。 好了,接下来就是程序了。 首先就得确定采样率,就是间隔多久采一个点。 刚开始不是很懂,用的40kHz,也成,但要是做音频频谱分析没必要那么高了。 这里有些资料:音频的频率范围及表现力度音频的频率范围、音质的评价标准一般认为20Hz20kHz是人耳听觉频带,称为“声频”。这个频段的声音称为“可闻声”,高于20kHz的称为“超声”,低于20Hz的称为“次声“。 所谓声音的质量,是指经传输、处理后音频信号的保真度。目前,业界公认的声音质量标准分为4级,即: 数字激光唱盘CD-DA质量,其信号带宽为10Hz20kHz; 调频广播FM质量,其信号带宽为20Hz15kHz; 调幅广播AM质量,其信号带宽为50Hz7kHz; 电话的话音质量,其信号带宽为200Hz3400Hz。可见,数字激光唱盘的声音质量最高,电话的话音质量最低。 除了频率范围外,人们往往还用其它方法和指标来进一步描述不同用途的音质标准。 音频频率范围一般可以分为四个频段,即: 低频段(30150HZ); 中低频段(30150HZ); 中低频(150500HZ); 中高频段(5005000HZ); 高频段(500020kHZ)。30150HZ频段:能够表现音乐的低频成分,使欣赏者感受到强劲有力的动感。150500HZ频段:能够表现单个打击乐器在音乐中的表现力,是低频中表达力度的部分。5005000HZ频段:主要表达演唱者或语言的清淅度及弦乐的表现力。500020kHZ频段:主要表达音乐的明亮度,但过多会使声音发破。- 所以我选则12kHz左右的采样率。下面的DSP_Lib文件夹就是ST公司提供的DSP库。FFT,PID等都是用汇编写的。 将ST提供的FFT表加载到内存中,速度是快一些,1024点只需1.7ms左右,我觉得效率算是蛮高了。接下来就是代码了:#include #include #include stm32_dsp.h#include table_fft.h#include sys.h#include usart.h#include delay.h#include timer.h#include LED.h#include ADC.h#include 3264LED.h#define NPT 256 / FFT point#define FAST 1 /指示条下落速度 #define SLOW 50 /绿点下落速度#define STOP 35 /绿点停顿速度u16 TableFFT;u16 AD_Count=0;u16 time,time2;void powerMag(void); /计算幅值u32 Data_INNPT; /* Complex input vector */u32 Data_OUTNPT; /* Complex output vector */u32 lBUFMAGNPT/2; /* 保存幅值 */u16 Result64; /最终结果u8 Pos64=0; /绿点位置u8 Dot64=0; /记录每点停顿时间u32 TMP;int main(void)u16 i,k;s16 tmp; Stm32_Clock_Init(9); /系统时钟设置72Mhz delay_init(72); /延时初始化 Timer3_Init(5,7199); /0.6ms中断一次 LED显示 Timer4_Init(7,760); /约74us中断一次, AD采集 LED_Init(); LEDs_Init(); /点阵初始化 Adc_Init(); time=time2=0; AD_Count=0; while(1) cr4_fft_256_stm32(Data_OUT, Data_IN, NPT); /做256点fft运算 powerMag(); /算幅值 for(i=1;i65;i+) /点平移,去除静态波动 tmp=lBUFMAGi/2-5; /显示幅值为实际幅值的一半并减去5,这样效果较好 if(tmp31)tmp=31; if(tmp=Resulti-1) Resulti-1=tmp; /得到每列上绿点的高度 if(Resulti-1=Posi-1) Doti-1=0;Posi-1=Resulti-1; /更新绿点高度 for(i=0;i64;i+) for(k=0;k32;k+) /画红点 if(kFAST&Resulti=1) Resulti-; if(Doti=STOP) /停顿判断 if(timeSLOW&Posi=1) Posi-; Doti+; if(Doti=250)Doti=250; if(timeSLOW) time=0; if(time2FAST) time2=0; else time2+; /* Calculate powermag* 计算各次谐波幅值* 先将lBUFOUT分解成实部(X)和虚部(Y),然后计算幅值(sqrt(X*X+Y*Y)*/void powerMag(void)s32 lX,lY;u32 i;float X,Y,Mag;for(i=0;i65;i+) /只显示64个点,所以计算得到前面65个点的幅值就行了。 lX = (Data_OUTi 16; lY = (Data_OUTi 16); X = (float)lX) /64; Y = (float)lY) /64; Mag = sqrt(X*X + Y*Y)/NPT; lBUFMAGi = (u32)(Mag * 65536);void TIM4_IRQHandler(void) /定时器4中断服务程序 约74us中断一次 ADC1-SQR3&=0XFFFFFFE0; /规则序列1ADC1-SQR3|=2; /通道2采集ADC1-CR2|=1DR;Data_INAD_Count=TMP255) AD_Count=0;TIM4-SR&=(1SR&0X0001) /溢出中断 oe=0; /关显示 for(i=0;i64;i+) /移出缓存区的上半屏一行数据 wr_595(SBFLinei); for(i=0;iODR
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 会计职业技能试题及答案
- 2025年驾校营销考试题及答案
- 南京市中储粮2025秋招面试专业追问题库综合管理岗
- 国家能源济源市2025秋招能源与动力工程类面试追问及参考回答
- 衡阳市中石化2025秋招笔试模拟题含答案财务与审计岗
- 2025年产后恢复考试题及答案
- 白银市中石化2025秋招笔试模拟题含答案炼油工艺技术岗
- 国家能源宁夏地区2025秋招笔试数学运算题专练及答案
- 鞍山市中石化2025秋招面试半结构化模拟题及答案油气储运与管道岗
- 2025年邮政远程培训题库及答案
- 人工智能平台服务合同
- DB33-T 1406-2024 职务科技成果转化管理规范
- 2025经皮去肾交感神经术治疗高血压专家建议
- 《摩登时代观后感》课件
- (完整版)小学1-6年级英语单词(人教版)
- GB/T 32825-2024三相干式立体卷铁芯电力变压器技术参数和要求
- 护理健康宣教PDCA案例
- 宝钢工程RH精炼炉设备与工艺技术介绍
- 护理查房:细菌性痢疾
- 高校课堂教学创新大赛一等奖课件:混合教学模式创新实践
- 课程《国际商法》课件(全)
评论
0/150
提交评论