搜索
bottom↓
回复: 229

折腾了一个月,终于搞成了音乐频谱,与大家分享。

  [复制链接]

出0入0汤圆

发表于 2018-2-1 15:38:52 | 显示全部楼层 |阅读模式
本帖最后由 rjx 于 2018-2-1 15:42 编辑

折腾了一个月,终于搞成了音乐频谱,分别形成了在OLED和LCD彩屏上显示的两个版本。
STM32单片机从大半年前才开始自学的(前几年曾陆续自学了PIC和AVR.)。老朽已过古稀之年,自学中的酸甜苦辣只有自己知道。
现将这个音乐频谱的资料分享给大家,望提出宝贵的意见。

      关于代码的几点说明:
      一、OLED屏是用的中景园的1.3寸屏和STM32F103C8T6的小系统板。LCD是用的是普中的屏和实验板(STM32F103ZET6),屏是ILI9341的3.2寸屏。各位移植时管脚连接可能不同,要注意修改相关的代码!
      二、FFT转换使用的是ST提供的DSP_LIB的库函数。本例中采样频率为40KZ,采样点数是256点。但实际显示时,各柱条的频点的却是从256点中挑选出来的,因为音频的范围虽然是10Z-20KZ,但人声和乐器的频率主要集中在0-4KZ,4KZ-8KZ次之,而8KZ-20KZ段主要是高次谐波。
     三、经FFT变换取模后,越是频率高的频点,其模值幅度越小,所以显示效果不好。且经FFT变换后,虽有256个频点,但后面的128个频点是和前面的128个频点成镜像的,所以只要从前面的128个频点里挑选就可以了。同时还要去掉第一个频点,因为第一个频点是直流分量,是不会跳动的,所以如果保留了第一个频点,那么在屏的最左边始终有一根不动的且满幅度的柱条,显得十分呆板,大煞风景。
     四、ADC采样软件触发方式,同时用TIM2定时器的溢出中断来设置一个标志位,当256点采集完成后,该标志位置位,再开始做FFT变换、计算幅值和显示。
     五、低频段的幅值一般较大,频率越高幅值越小,为了提高显示效果,使各柱条跳动的幅度较为均衡,我在程序里安排了用软件方式对增益做些适当的调整,即压缩较大的幅值,加大较小的幅值。
     六、如果实际使用在音响电路里,ADC的取样点可以是前级放大器,也可以取自功放。这时最好加上自动增益控制电路,以均衡采样的幅度;为了克服混叠效应和栅栏泄漏,最好要加上低通滤波电路(最好是2-4阶,以达到衰减较为陡峭的目的。);同时还要加上电平平移电路,因为单片机采样时是不接受负电压的。这些内容我之前曾发过一个帖子,有相关的电路图和PCB的图,各位如需要可移步查看。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x

阿莫论坛20周年了!感谢大家的支持与爱护!!

月入3000的是反美的。收入3万是亲美的。收入30万是移民美国的。收入300万是取得绿卡后回国,教唆那些3000来反美的!

出75入90汤圆

发表于 2018-2-1 15:42:57 | 显示全部楼层
古稀还有这么强的自学能力,佩服,先顶再看。

出0入4汤圆

发表于 2018-2-1 16:04:54 | 显示全部楼层
确实佩服,希望我到那个年纪还能保持对某件事情这么大的兴趣。 支持

出0入0汤圆

发表于 2018-2-1 16:17:43 | 显示全部楼层
LZ 是不是就是那种传说中的硬件大牛

出0入0汤圆

发表于 2018-2-1 16:25:10 | 显示全部楼层
先顶再看,厉害!

出0入8汤圆

发表于 2018-2-1 16:26:21 | 显示全部楼层
真心佩服前辈!!!

出0入0汤圆

发表于 2018-2-1 16:30:40 来自手机 | 显示全部楼层
佩服佩服。。。

出0入50汤圆

发表于 2018-2-1 16:31:03 | 显示全部楼层
向老前辈致敬!
活到老学到老!

出50入10汤圆

发表于 2018-2-1 16:33:17 | 显示全部楼层
佩服佩服。。。,  以前辈为榜样!把技术搞到底!

出0入0汤圆

发表于 2018-2-1 16:36:47 | 显示全部楼层
人生七十古来稀,
我不相信楼主有七十,上照。

出0入0汤圆

 楼主| 发表于 2018-2-1 16:43:29 | 显示全部楼层
本帖最后由 rjx 于 2018-2-1 16:51 编辑

这有什么不相信的呢,我说的都是真话,这个也可以吹牛吗?我是1947年生人。自幼就爱好无线电,一生中从未停止过DIY,主要玩的是音响方面的。不客气的说,我是个资深发烧友。前几年又对单片机发生了兴趣,开始自学C,PIC,AVR,半年前又学STM32.我在www.audio-gd.com发过无数的帖子,那个论坛里所有的人都知道我。

出0入0汤圆

发表于 2018-2-1 16:48:22 | 显示全部楼层
rjx 发表于 2018-2-1 16:43
这有什么不相信的呢,我说的都是真话,这个也可以吹牛吗?我是1947年生人。自幼就爱好无线电,一生中从未停 ...

膜拜前辈!

出0入0汤圆

发表于 2018-2-1 16:51:34 | 显示全部楼层
厉害厉害啊,很佩服

出0入0汤圆

发表于 2018-2-1 16:54:23 | 显示全部楼层
这个年纪  敬佩了

出700入102汤圆

发表于 2018-2-1 16:55:21 | 显示全部楼层
还不到您一半岁数,感觉已经学不进了

出0入0汤圆

发表于 2018-2-1 16:55:46 | 显示全部楼层
rjx 发表于 2018-2-1 16:43
这有什么不相信的呢,我说的都是真话,这个也可以吹牛吗?我是1947年生人。自幼就爱好无线电,一生中从未停 ...

膜拜前辈!


按照现在的用眼强度,电脑和手机,70岁我还能不能看清楚屏幕都存疑

出0入0汤圆

发表于 2018-2-1 16:56:35 | 显示全部楼层
现在每天敲代码就是为了赚钱,不会为了玩去敲代码

出0入0汤圆

发表于 2018-2-1 16:56:50 | 显示全部楼层
膜拜前辈!

出0入0汤圆

发表于 2018-2-1 16:58:48 来自手机 | 显示全部楼层
厉害,我只做过32X64点阵的频谱,线性扫描效果不怎么好,不知道怎么用对数方式扫描上去

出0入0汤圆

发表于 2018-2-1 16:59:08 | 显示全部楼层
rjx 发表于 2018-2-1 16:43
这有什么不相信的呢,我说的都是真话,这个也可以吹牛吗?我是1947年生人。自幼就爱好无线电,一生中从未停 ...

前辈是活到老学到老,
把电子当做一生爱好,
膜拜!!

出0入0汤圆

 楼主| 发表于 2018-2-1 16:59:22 | 显示全部楼层
老年人多动脑子,可以预防老年痴呆。

出0入0汤圆

 楼主| 发表于 2018-2-1 17:04:28 | 显示全部楼层
本帖最后由 rjx 于 2018-2-1 17:06 编辑
xfdr 发表于 2018-2-1 16:58
厉害,我只做过32X64点阵的频谱,线性扫描效果不怎么好,不知道怎么用对数方式扫描上去 ...


曾试过用反正切函数来处理取模结果,虽说可以均衡高低的差异,但似乎太接近了,柱条高度差异过小,也不太好,我代码里有,你可以看看。

出0入42汤圆

发表于 2018-2-1 17:12:41 来自手机 | 显示全部楼层
膜拜楼主

出0入0汤圆

发表于 2018-2-1 17:20:56 | 显示全部楼层
膜拜大爷

出0入0汤圆

发表于 2018-2-1 17:23:27 来自手机 | 显示全部楼层
膜拜楼主

出0入0汤圆

发表于 2018-2-1 17:24:10 来自手机 | 显示全部楼层
膜拜老前辈  

出0入0汤圆

发表于 2018-2-1 17:36:56 | 显示全部楼层
rjx 发表于 2018-2-1 16:43
这有什么不相信的呢,我说的都是真话,这个也可以吹牛吗?我是1947年生人。自幼就爱好无线电,一生中从未停 ...

膜拜前辈,希望我们老的时候也有此激情!

出0入0汤圆

发表于 2018-2-1 17:47:47 | 显示全部楼层
致敬,致敬。

出0入0汤圆

发表于 2018-2-1 17:53:44 | 显示全部楼层
佩服,楼主威武!

出0入8汤圆

发表于 2018-2-1 17:54:18 | 显示全部楼层
不错,活到老,学到老!

出10入0汤圆

发表于 2018-2-1 17:56:01 | 显示全部楼层
真是学无止境啊!!膜拜前辈!

出0入0汤圆

发表于 2018-2-1 18:00:32 | 显示全部楼层
致敬,致敬。

出0入0汤圆

发表于 2018-2-1 18:07:06 来自手机 | 显示全部楼层
厉害了学习能力真是强

出0入0汤圆

发表于 2018-2-1 18:25:21 | 显示全部楼层
最敬佩的就是这样的精神,这是我没有的

出0入0汤圆

发表于 2018-2-1 18:33:54 来自手机 | 显示全部楼层
膜拜老前辈!!广州荔湾和西场确实音响前辈蛮多

出0入0汤圆

发表于 2018-2-1 18:35:11 | 显示全部楼层
佩服,这么大年纪

出0入8汤圆

发表于 2018-2-1 18:35:43 | 显示全部楼层
佩服老前辈的精神

出0入0汤圆

发表于 2018-2-1 18:40:03 | 显示全部楼层
rjx 发表于 2018-2-1 16:43
这有什么不相信的呢,我说的都是真话,这个也可以吹牛吗?我是1947年生人。自幼就爱好无线电,一生中从未停 ...

白名单已经实行?最近好多网站都登陆不上去了呀。
http://www.audio-gd.com/这个也打不开。需要爱国?

出0入4汤圆

发表于 2018-2-1 18:54:18 | 显示全部楼层
佩服!!!        

出0入0汤圆

发表于 2018-2-1 18:59:08 | 显示全部楼层
膜拜老前辈

出0入0汤圆

发表于 2018-2-1 18:59:21 | 显示全部楼层
膜拜前辈!

出0入0汤圆

发表于 2018-2-1 19:05:24 | 显示全部楼层
向前辈学习!

出0入0汤圆

发表于 2018-2-1 19:18:47 来自手机 | 显示全部楼层
向前辈学习!

出0入0汤圆

发表于 2018-2-1 19:36:50 | 显示全部楼层
真心佩服前辈!!!

出0入0汤圆

发表于 2018-2-1 19:48:06 来自手机 | 显示全部楼层
玩儿音响的都是高手 佩服

出0入0汤圆

发表于 2018-2-1 20:23:46 | 显示全部楼层
去年有一次要更换个板子上的BGA,就去华强北找了个笔记本维修点。在柜台等着老板操作的时候,有一个老人家也在等什么,有一搭无一搭就聊了起来。他在自学单片机和PROTEL,也在搞东西,之前在部队上搞通讯的,他已经80多了!
前辈们,牛!

出0入0汤圆

发表于 2018-2-1 20:31:43 来自手机 | 显示全部楼层
佩服!希望到了楼主的年纪还有楼主的这份心

出0入0汤圆

发表于 2018-2-1 21:17:16 | 显示全部楼层
膜拜膜拜

出0入0汤圆

发表于 2018-2-1 21:18:49 | 显示全部楼层
厉害,向前辈学习

出0入0汤圆

发表于 2018-2-1 21:22:58 | 显示全部楼层

向前辈学习!!!

出0入0汤圆

发表于 2018-2-1 21:33:24 来自手机 | 显示全部楼层
膜拜老先生!

出0入0汤圆

发表于 2018-2-1 22:33:29 | 显示全部楼层
那个35岁入行FPGA嫌太晚的出来走两步,在前辈眼里你还未成年呢!

出0入0汤圆

发表于 2018-2-1 22:34:22 来自手机 | 显示全部楼层
老先生心态和我们完全不一样,心态决定一切!

出40入70汤圆

发表于 2018-2-1 22:37:36 | 显示全部楼层
rjx 发表于 2018-2-1 16:59
老年人多动脑子,可以预防老年痴呆。

老师傅你好,你能上一张你最近帅帅的照片不,让我们这些小辈份的人长长见识,哈哈

出0入4汤圆

发表于 2018-2-1 22:42:04 | 显示全部楼层
大爷。。我就服你

出0入0汤圆

发表于 2018-2-1 23:23:49 | 显示全部楼层
向前辈学习!!!

出0入0汤圆

发表于 2018-2-1 23:24:16 | 显示全部楼层
古稀。。。老前辈!

出0入0汤圆

发表于 2018-2-2 00:18:11 | 显示全部楼层
活到老,学到老,佩服

出0入0汤圆

发表于 2018-2-2 07:43:55 来自手机 | 显示全部楼层
前辈这种精神是当下4/50岁技术人的榜样!

出0入0汤圆

发表于 2018-2-2 08:04:01 来自手机 | 显示全部楼层
古稀之年如此动力,真正是对技术的爱好,可敬可佩!

出0入0汤圆

发表于 2018-2-2 08:14:49 | 显示全部楼层
膜拜前辈!向前辈学习了.

出0入0汤圆

发表于 2018-2-2 08:15:28 | 显示全部楼层
现实版扫地僧~~顶礼膜拜!!!

出0入0汤圆

发表于 2018-2-2 08:17:18 | 显示全部楼层
膜拜前辈!     

出0入0汤圆

发表于 2018-2-2 08:30:13 | 显示全部楼层
膜拜老前辈!厉害厉害!
有一点不明,请教一下,采样率40K,256点,那么频率分辨率是156.25Hz,为什么选择这个分辨率呢?低于这个频率的频谱的低音部分也分析不到。

出0入0汤圆

发表于 2018-2-2 08:35:52 | 显示全部楼层
实在是敬佩前辈

出50入10汤圆

发表于 2018-2-2 08:42:35 | 显示全部楼层

的确,

年龄不是压力!

视力才是压力!!!!!!

出0入0汤圆

发表于 2018-2-2 08:45:48 | 显示全部楼层
厉害!!佩服啊!!

出0入8汤圆

发表于 2018-2-2 08:46:21 | 显示全部楼层
七十岁,我不知道自己还在不在

出0入4汤圆

发表于 2018-2-2 08:52:58 | 显示全部楼层
佩服LZ,我现在才30多岁,就不想写代码了。

什么事情都想着让别人干

出0入0汤圆

发表于 2018-2-2 09:13:36 | 显示全部楼层
真不该感叹已老啊

出0入0汤圆

发表于 2018-2-2 09:17:23 | 显示全部楼层
冲着古稀这点得给老前辈一个赞

出0入0汤圆

发表于 2018-2-2 09:21:08 | 显示全部楼层
像老前辈学习

出0入0汤圆

发表于 2018-2-2 09:28:18 | 显示全部楼层
rjx 发表于 2018-2-1 16:43
这有什么不相信的呢,我说的都是真话,这个也可以吹牛吗?我是1947年生人。自幼就爱好无线电,一生中从未停 ...


老前辈和我师傅同一辈的人,他老人家也是喜欢DIY音响,总是换着花样玩,还记得帮他做胆机变压器的时候,一圈一圈地绕....  不过在电脑这里断挡了,始终停留在用电脑画画电路图的阶段。

出0入0汤圆

发表于 2018-2-2 09:29:49 | 显示全部楼层
老朽已过古稀之年,还喜欢折腾,向你学习

出0入0汤圆

发表于 2018-2-2 09:37:35 | 显示全部楼层
佩服啊,为了爱好去学习研究真是幸福。 人生必须得有些爱好。

出0入0汤圆

发表于 2018-2-2 09:39:49 | 显示全部楼层
2012Ehome 发表于 2018-2-2 09:29
老朽已过古稀之年,还喜欢折腾,向你学习

“老朽”是自我的谦称,这位后生应该是用错语境了。
楼主前辈是我辈折腾人士的楷模,必须膜拜

出0入0汤圆

发表于 2018-2-2 09:57:10 | 显示全部楼层
先顶一个,坚持终生学习。

出0入0汤圆

发表于 2018-2-2 10:03:53 | 显示全部楼层
老当益壮,当自强

出0入0汤圆

 楼主| 发表于 2018-2-2 11:51:01 | 显示全部楼层
本帖最后由 rjx 于 2018-2-2 12:24 编辑
yht0312 发表于 2018-2-2 08:30
膜拜老前辈!厉害厉害!
有一点不明,请教一下,采样率40K,256点,那么频率分辨率是156.25Hz,为什么选择 ...


选256点,开始考虑是觉得F103系列没有浮点计算能力,怕MCU的负担太重,速度跟不上。如改为1024点,分辨率可以到39HZ,就好多了。昨晚试了一下,改成1024后,也跑得很顺畅。这样低频段可以向下很多了。
如有条件,上F4系列,有强大的浮点计算能力,就不必有这个担心了。

出130入20汤圆

发表于 2018-2-2 12:00:29 | 显示全部楼层
膜拜,学无止境啊,希望我古稀时还有学习的心态,不过,首先要活到那个岁数,现在的环境食品估计够呛

齐白石:老朽七十几岁,要不要教一教你如何搞定小护士?

出0入0汤圆

发表于 2018-2-2 12:12:54 | 显示全部楼层
我也是50岁才开始学C51,至今有2年半。我学编程的目的就是为了打发时间和预防老年痴呆。前段时间刚刚理解了结构体和指针,就转向STM32。
向楼主学习,继续努力。

出0入0汤圆

发表于 2018-2-2 12:27:34 | 显示全部楼层
我等小辈,膜拜

出0入0汤圆

发表于 2018-2-2 13:59:52 | 显示全部楼层
70有1,同我一样是70后的,给楼主一个大写的“赞”和“服”。

出0入0汤圆

发表于 2018-2-2 14:17:14 | 显示全部楼层
致敬,致敬。

出0入0汤圆

发表于 2018-2-2 14:29:27 | 显示全部楼层
致敬,记号一下11楼

出0入59汤圆

发表于 2018-2-2 14:45:15 | 显示全部楼层
楼主已过古稀之年?!  佩服佩服!!!

出0入0汤圆

发表于 2018-2-2 14:59:15 | 显示全部楼层
学无止境,我等小辈仍需努力。
向前辈致敬。

出0入0汤圆

发表于 2018-2-2 16:28:23 | 显示全部楼层
ADC不是可以用定时器触发吗 这样采样率可以控制的很精确

出0入0汤圆

发表于 2018-2-2 16:29:18 | 显示全部楼层
学无止境,更要当做乐趣

出0入0汤圆

发表于 2018-2-2 16:48:40 | 显示全部楼层
学习学习,向前辈致敬。

出140入115汤圆

发表于 2018-2-2 17:05:34 | 显示全部楼层
下载学习,向前辈致敬。

出0入8汤圆

发表于 2018-2-2 17:40:11 | 显示全部楼层

向老前辈致敬!
活到老学到老!

出0入0汤圆

发表于 2018-2-2 17:53:50 | 显示全部楼层
敬佩老前辈

出0入0汤圆

发表于 2018-2-2 19:23:27 | 显示全部楼层
顶前辈,做得比我好多了。

出0入0汤圆

发表于 2018-2-2 19:34:51 来自手机 | 显示全部楼层
向前辈致敬,向前辈学习

出0入0汤圆

发表于 2018-2-2 21:25:59 | 显示全部楼层
向老前辈致敬!
活到老学到老!

出0入0汤圆

发表于 2018-2-2 23:59:04 来自手机 | 显示全部楼层
厉害了,值得学习?

出0入0汤圆

发表于 2018-2-3 06:22:55 来自手机 | 显示全部楼层
厉害厉害啊,很佩服

出0入0汤圆

发表于 2018-2-3 08:27:58 来自手机 | 显示全部楼层
向所有不服老的人致敬!我身边有些二十岁刚出头的孩子们都表示太难不想学单片机,这已经是2018年了,这种态度,注定要被淘汰的。

出0入0汤圆

 楼主| 发表于 2018-2-3 10:39:15 | 显示全部楼层
谢谢各位的支持和夸奖,老朽会继续努力的。
另外,代码中有不少是参考网上的,有的段落就是直接移植的,还有在论坛里提问也得到不少朋友的解答帮助,一起谢过了。
回帖提示: 反政府言论将被立即封锁ID 在按“提交”前,请自问一下:我这样表达会给举报吗,会给自己惹麻烦吗? 另外:尽量不要使用Mark、顶等没有意义的回复。不得大量使用大字体和彩色字。【本论坛不允许直接上传手机拍摄图片,浪费大家下载带宽和论坛服务器空间,请压缩后(图片小于1兆)才上传。压缩方法可以在微信里面发给自己(不要勾选“原图),然后下载,就能得到压缩后的图片】。另外,手机版只能上传图片,要上传附件需要切换到电脑版(不需要使用电脑,手机上切换到电脑版就行,页面底部)。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

手机版|Archiver|amobbs.com 阿莫电子技术论坛 ( 粤ICP备2022115958号, 版权所有:东莞阿莫电子贸易商行 创办于2004年 (公安交互式论坛备案:44190002001997 ) )

GMT+8, 2024-4-28 13:16

© Since 2004 www.amobbs.com, 原www.ourdev.cn, 原www.ouravr.com

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