OpenEdv-开源电子网

 找回密码
 立即注册
正点原子全套STM32/Linux/FPGA开发资料,上千讲STM32视频教程免费下载...
查看: 11265|回复: 27

叩問:STM32做頻譜分析的問題

[复制链接]

2

主题

16

帖子

0

精华

新手上路

积分
44
金钱
44
注册时间
2012-3-19
在线时间
0 小时
发表于 2012-4-2 12:29:38 | 显示全部楼层 |阅读模式
用AD采集音频信号,在用FFT函数处理采集的数据,应该什么速率采样和要采样多少个点才能保证频谱的范围,不是很懂FFT操作出来的的频谱范围。
正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165540
金钱
165540
注册时间
2010-12-1
在线时间
2117 小时
发表于 2012-4-2 20:45:11 | 显示全部楼层
先要有要求才能下药。
我是开源电子网www.openedv.com站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺http://openedv.taobao.com
正点原子官方微信公众平台,点击这里关注“正点原子”
回复 支持 反对

使用道具 举报

2

主题

16

帖子

0

精华

新手上路

积分
44
金钱
44
注册时间
2012-3-19
在线时间
0 小时
 楼主| 发表于 2012-4-2 21:56:48 | 显示全部楼层
回复【2楼】正点原子:
---------------------------------
想做頻譜分析,VS1003的音頻信號輸入,STM32的AD采样,采集一定数量的离散点给FFT函数处理,没具体要求,听闻人听到的音调范围是20至2000HZ,希望做16个频率的LED柱状显示,不知道如何设置AD采样率和采集点的个数才能得到适合的频率范围。原子哥应该做过,请教具体实现的思想。FFT函数的内部处理算法和实际物理意义不是很懂。

回复 支持 反对

使用道具 举报

2

主题

16

帖子

0

精华

新手上路

积分
44
金钱
44
注册时间
2012-3-19
在线时间
0 小时
 楼主| 发表于 2012-4-2 23:23:37 | 显示全部楼层
再問一下,AD采样的方式要用定时器采样了貌似,有没相关例程?
回复 支持 反对

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165540
金钱
165540
注册时间
2010-12-1
在线时间
2117 小时
发表于 2012-4-3 00:36:53 | 显示全部楼层
回复【4楼】虛構:
---------------------------------
要学会百度。
http://wenku.baidu.com/view/0e0cd4c24028915f804dc232.html
我是开源电子网www.openedv.com站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺http://openedv.taobao.com
正点原子官方微信公众平台,点击这里关注“正点原子”
回复 支持 反对

使用道具 举报

2

主题

16

帖子

0

精华

新手上路

积分
44
金钱
44
注册时间
2012-3-19
在线时间
0 小时
 楼主| 发表于 2012-4-4 13:43:25 | 显示全部楼层
回复【5楼】正点原子:
---------------------------------
谢谢哈。大概有点懂,再问一下原子哥,您写的不完全手册中AD采样那一节,为何如果PA0不接任何东西,会显示3.3V的?PA0接上1.5V的干电池又能显示正常。
回复 支持 反对

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165540
金钱
165540
注册时间
2010-12-1
在线时间
2117 小时
发表于 2012-4-4 14:14:52 | 显示全部楼层
PA0?有下拉电阻的哦,应该是0V才对吧.
我是开源电子网www.openedv.com站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺http://openedv.taobao.com
正点原子官方微信公众平台,点击这里关注“正点原子”
回复 支持 反对

使用道具 举报

6

主题

30

帖子

0

精华

初级会员

Rank: 2

积分
75
金钱
75
注册时间
2012-3-4
在线时间
0 小时
发表于 2012-4-4 14:49:40 | 显示全部楼层
回复【7楼】正点原子:
---------------------------------
为什么说有下拉电阻?

模拟采样的时候不是应该都悬空的么?
回复 支持 反对

使用道具 举报

2

主题

16

帖子

0

精华

新手上路

积分
44
金钱
44
注册时间
2012-3-19
在线时间
0 小时
 楼主| 发表于 2012-4-4 19:17:53 | 显示全部楼层
回复【7楼】正点原子:
---------------------------------
再问原子哥,请帮分析下:
想法:用STM32做频谱分析(外搭,非开发板,型号是STM32F103C8T6,不知和F103RB有何区别)
大致实施:用AD采集音频信号(用原子哥的AD程序,修改采样率,PA0接音频信号),定时器读取AD的值(定时器设为40KHZ,人听到的声音为20HZ到20KHZ),读32个AD值后给FFT函数处理,取FFT输出的前16个值中的10个值经过数据处理,点亮宽10高8的LED矩阵(该LED矩阵直接用IO连接正负极,共10+8=18个IO口)
问题:1、自搭情况下,PA0需不需要接下拉电阻之类的处理,还是直接悬空采样?
      2、FFT其中输出的10个值的分析是否对频谱分析误差较大?要读更多的AD值?64?128?256?
         3、10个数据值的处理方法,貌似网上说要自动增益的控制,具体如何?亲测了一种自动增益的控制,取temp=max{10个数据};temp=temp/8;10个数据除以temp得到10个最大是8的数值去点亮,发现貌似这样如果没有音频信号,也会随时有达到8的情况。。。希望有好的编程方法。。。
      4、试过用IO控制的LED点阵,由于IO口有限,每10个LED正极接在了一起,每8个负极接在一起,刷屏的时候又时间间隔,导致灯亮的时间可能很短造成视觉上的不好看,由于频谱分析要连续刷屏,控制发现很有难度。但是网上杜洋什么的都是这样接的,难道又涉及某些高深的编程?
回复 支持 反对

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165540
金钱
165540
注册时间
2010-12-1
在线时间
2117 小时
发表于 2012-4-4 20:36:32 | 显示全部楼层
回复【6楼】虛構:
---------------------------------
因为IO口是在浮空状态.在浮空状态下,是有可能是3.3V的.
我是开源电子网www.openedv.com站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺http://openedv.taobao.com
正点原子官方微信公众平台,点击这里关注“正点原子”
回复 支持 反对

使用道具 举报

2

主题

16

帖子

0

精华

新手上路

积分
44
金钱
44
注册时间
2012-3-19
在线时间
0 小时
 楼主| 发表于 2012-4-4 20:58:32 | 显示全部楼层
回复【10楼】正点原子:
---------------------------------
恩恩,那8楼的问题。。。
回复 支持 反对

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165540
金钱
165540
注册时间
2010-12-1
在线时间
2117 小时
发表于 2012-4-4 21:14:31 | 显示全部楼层
1,接下拉.
2,32个数据,分辨率有点低.建议采用256点以上.
3,简单的做法.自动增益,可以不考虑.如果要做,不能通过MCU做,外界AGC电路.
4,用74HC595之类的芯片扩展IO.
我是开源电子网www.openedv.com站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺http://openedv.taobao.com
正点原子官方微信公众平台,点击这里关注“正点原子”
回复 支持 反对

使用道具 举报

2

主题

16

帖子

0

精华

新手上路

积分
44
金钱
44
注册时间
2012-3-19
在线时间
0 小时
 楼主| 发表于 2012-4-6 13:43:12 | 显示全部楼层
回复【12楼】正点原子:
---------------------------------
请问原子哥,ADC初始化后,串口的printf就显示不了在串口里了?
回复 支持 反对

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165540
金钱
165540
注册时间
2010-12-1
在线时间
2117 小时
发表于 2012-4-6 15:27:27 | 显示全部楼层
回复【13楼】虛構:
---------------------------------
什么意思?
我是开源电子网www.openedv.com站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺http://openedv.taobao.com
正点原子官方微信公众平台,点击这里关注“正点原子”
回复 支持 反对

使用道具 举报

2

主题

16

帖子

0

精华

新手上路

积分
44
金钱
44
注册时间
2012-3-19
在线时间
0 小时
 楼主| 发表于 2012-4-6 17:59:26 | 显示全部楼层
回复【14楼】正点原子:
---------------------------------
套您的例程,ADCinit后USART的printf就用不了了,不知为何。
回复 支持 反对

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165540
金钱
165540
注册时间
2010-12-1
在线时间
2117 小时
发表于 2012-4-6 18:14:55 | 显示全部楼层
应该是你修改了什么地方吧.
我是开源电子网www.openedv.com站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺http://openedv.taobao.com
正点原子官方微信公众平台,点击这里关注“正点原子”
回复 支持 反对

使用道具 举报

2

主题

16

帖子

0

精华

新手上路

积分
44
金钱
44
注册时间
2012-3-19
在线时间
0 小时
 楼主| 发表于 2012-4-6 18:53:01 | 显示全部楼层
回复【16楼】正点原子:
---------------------------------
int main(void)
{
u16 adcx;
float temp;
   Stm32_Clock_Init(9);//系统时钟设置
delay_init(72); //延时初始化
uart_init(72,9600); //串口1初始化   
LED_Init();
LCD_Init();  
Adc_Init();

      
while(1)
{
 printf("hello");
              printf("hi");
 printf("good");
}
}

您的ALIENTEK MINISTM32 实验13 ADC实验
就改了一下主函数,串口看的时候有时会乱码有时可以正常打印,不知道何解。
回复 支持 反对

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165540
金钱
165540
注册时间
2010-12-1
在线时间
2117 小时
发表于 2012-4-6 21:08:24 | 显示全部楼层
回复【17楼】虛構:
---------------------------------
你软件仿真,执行过ADC_INIT函数,再看看USART1的寄存器相关内容是否正确(波特率,时钟什么的.)
我是开源电子网www.openedv.com站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺http://openedv.taobao.com
正点原子官方微信公众平台,点击这里关注“正点原子”
回复 支持 反对

使用道具 举报

2

主题

16

帖子

0

精华

新手上路

积分
44
金钱
44
注册时间
2012-3-19
在线时间
0 小时
 楼主| 发表于 2012-4-22 19:45:48 | 显示全部楼层
原子哥原来是我校友,曾经的坏孩子,今日访谈给了我不少感触。
回复 支持 反对

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165540
金钱
165540
注册时间
2010-12-1
在线时间
2117 小时
发表于 2012-4-23 00:02:38 | 显示全部楼层
呵呵,你是?今天太仓促了...有机会可以过来我们这边玩玩.
我是开源电子网www.openedv.com站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺http://openedv.taobao.com
正点原子官方微信公众平台,点击这里关注“正点原子”
回复 支持 反对

使用道具 举报

2

主题

16

帖子

0

精华

新手上路

积分
44
金钱
44
注册时间
2012-3-19
在线时间
0 小时
 楼主| 发表于 2012-4-23 21:46:46 | 显示全部楼层
回复【20楼】正点原子:
---------------------------------
在台下听您被访谈的学生而已,真心感觉自己不够努力。天下还有这么巧的事情。您的资料写您来自湖南,突然我们就同一个大学了,还是得多向您学习呀!
回复 支持 反对

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165540
金钱
165540
注册时间
2010-12-1
在线时间
2117 小时
发表于 2012-4-23 22:21:01 | 显示全部楼层
 
我是开源电子网www.openedv.com站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺http://openedv.taobao.com
正点原子官方微信公众平台,点击这里关注“正点原子”
回复 支持 反对

使用道具 举报

2

主题

16

帖子

0

精华

新手上路

积分
44
金钱
44
注册时间
2012-3-19
在线时间
0 小时
 楼主| 发表于 2012-4-25 23:01:19 | 显示全部楼层
原子哥,请问您有没搞过ENC28J60驱动(网络模块),求一下代码和相关资料呀。
回复 支持 反对

使用道具 举报

2

主题

16

帖子

0

精华

新手上路

积分
44
金钱
44
注册时间
2012-3-19
在线时间
0 小时
 楼主| 发表于 2012-4-25 23:44:03 | 显示全部楼层
NRF905、CC1100等在排队。。。
回复 支持 反对

使用道具 举报

2

主题

16

帖子

0

精华

新手上路

积分
44
金钱
44
注册时间
2012-3-19
在线时间
0 小时
 楼主| 发表于 2012-4-25 23:44:33 | 显示全部楼层
回复【22楼】正点原子:
---------------------------------
M一下。。。
回复 支持 反对

使用道具 举报

2

主题

18

帖子

0

精华

新手上路

积分
46
金钱
46
注册时间
2012-8-31
在线时间
0 小时
发表于 2013-6-20 10:47:53 | 显示全部楼层
原子     想向你请教一下.   能不能直接用STM32F103的AD来采集 柱极体话筒 的数据 做一些简单的 频谱分析 .
回复 支持 反对

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165540
金钱
165540
注册时间
2010-12-1
在线时间
2117 小时
发表于 2013-6-20 18:09:39 | 显示全部楼层
要加个前级放大电路
我是开源电子网www.openedv.com站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺http://openedv.taobao.com
正点原子官方微信公众平台,点击这里关注“正点原子”
回复 支持 反对

使用道具 举报

0

主题

8

帖子

0

精华

新手上路

积分
28
金钱
28
注册时间
2014-4-18
在线时间
0 小时
发表于 2014-5-19 20:38:22 | 显示全部楼层
不知 楼主现在音频信号处理的怎么样?现在也在做这个 不知有没有资料可以分享?
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则



关闭

原子哥极力推荐上一条 /2 下一条

正点原子公众号

QQ|手机版|OpenEdv-开源电子网 ( 粤ICP备12000418号-1 )

GMT+8, 2025-7-8 05:22

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

快速回复 返回顶部 返回列表