辨音识键奏乐系统(K 题) 【高职高专组】 一、 任务 设计并制作一个辨音识键的电子琴演奏系统,如图 1 所示,包含:5 个水杯当作琴键,1 个演奏用的敲击棒,1 个识别控制器,具有拾音、分析识别、显示、音乐发声等功能。演奏过程中系统根据水杯被敲击时发出的声音识别出琴键(以与位置标号一致的杯号来标识),由识别控制器发出对应音高(声音频率)的声音。5 个琴键(杯号)与不同音高间的对应关系由选手自定。
图 1 系统构成示意图
一、 要求
1. 基本要求 (1)一键启动识别控制器自动演奏简单乐曲(如:起床号、两只老虎等),时长不超过 15s。 (2)分别敲击放置在 1、3、5 号位置上的 3 个空水杯进行识别学习训练,然后逐个敲击杯子将杯号显示在识别控制器上,用时≤90s。 (3)在 3 个空水杯(2、4、5 号)中各倒入 50、100、150ml 的水,分别进行敲击识别学习训练,然后逐个敲击杯子将杯号显示在识别控制器上,用时≤90s。队员敲击水杯,识别控制器同时发出对应音高的声音。
2. 发挥部分 (1)在 5 个空水杯中由队员注入不同容量的水,各杯中水容量之差不小于20ml,分别进行敲击识别学习训练,然后逐个敲击杯子将杯号显示在识别控制器上,用时≤120s。队员敲击水杯演奏简单乐曲(如:起床号),由识别控制器发出乐曲声。 (2)在完成发挥部分任务(1)的基础上,再增加 3 个加有不同水量(30、100、150ml)的杯子,按要求打乱 8 个杯子排序后并排放置,从其中敲击识别出打乱排序前的 1~5 号杯子,并在敲击的同时显示其杯号,敲到新增杯子后显示数字 0,总用时≤90s。 (3)其他。
二、 说明
(1)水杯采用外观相同的 8 个容量为 180~220ml 的无柄玻璃杯,由参赛队自备。杯子上不能有任何标记和附加物。测试时杯子随机放置。 (2)敲击棒自选,要求实心无附加装置,棒上标明长度为 3cm 的敲击区范围。测试时统一要求敲击杯子靠近操作队员一侧的上沿。 (3)识别时由队员在 3s 内敲击同一杯子不超过 3 次进行识别。 (4)测试发挥部分之前按要求用白板笔在杯底外部随机标记编号,按编号放置好杯子后启动测试。基本要求部分杯号为位置号,发挥部分杯号为杯底编号。 (5)识别控制器演奏音乐的声强和音色无特殊要求,供电方式无要求。 (6)有时间要求的任务,超时以 0 分计。 (7)注水时可用注射器或量杯计量操作。
捕获声音信号,做fft,计算幅值换算距离 应该就是用普通的咪头,灵敏度高。
学习训练时,做ADC并FFT后,获取最高的几条谱线,并计算其比例关系。
识别时,也是ADC后做FFT,计算最高的几条谱线的比例关系,在一定范围内,则为对应的杯子的声音。
K题求助stc32g单片机能用的fft函数
改成STC32G的了,主频30MHz,先发程序,使用说明还没来得及改。 MCU:STC32G12K128,例子使用实验箱9.61验证。 主频:30MHz。 FFT: 256点采样,128点频谱显示,USB-CDC传给STC-ISP里的示波器界面显示频谱。
采样频率最高25.6KHz,下面的程序已按楼主要求用12.8KHz采样,分辨率50Hz。
|