[发明专利]一种低成本单片机的音乐生成方法及其系统在审
申请号: | 201710341231.2 | 申请日: | 2017-05-16 |
公开(公告)号: | CN107358970A | 公开(公告)日: | 2017-11-17 |
发明(设计)人: | 赵传金 | 申请(专利权)人: | 深圳市大语科技有限公司 |
主分类号: | G11B27/031 | 分类号: | G11B27/031 |
代理公司: | 暂无信息 | 代理人: | 暂无信息 |
地址: | 518000 广东省深圳市*** | 国省代码: | 广东;44 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 低成本 单片机 音乐 生成 方法 及其 系统 | ||
技术领域
本发明涉及音乐生成技术领域,具体地,涉及一种低成本单片机的音乐生成方法及其生成系统。
背景技术
诸如无线呼叫器、无线门铃之类的电子设备实的音乐播放,一般采用低成本方案,即采用的硬件简单,CPU运行速度、存储空间有限,不适合也无法运行如MP3等标准的音频软件。此类电子设备的音乐一般以一定形式存储在本地,供需要的时候播放。主要有两种方案实现:1.如图1所示,专用的音乐芯片实现,即音乐数据存储在音乐芯片中,通过音乐芯片直接驱动喇叭播放音乐;2.如图2所示,单片机PWM实现,音乐数据(也就是乐谱的频率表和时延表)存储在单片机系统中,单片机IO口输出PWM信号,经过音频功放驱动喇叭,PWM信号的持续时间和占空比等参数由频率表和时延表决定。这两种方案中,第一种方案虽然实现简单,但会提高硬件成本及复杂度、增加功耗;两种方案都比较常用。但是,这两种方案有个共同的缺点:只能实现音乐播放,如果还需要播放语音等信号时,这两种硬件方案都无法实现。要播放语音,需要如图3所示的硬件构架。若采取这种方式播放音乐,需要用类似MP3之类的音频解码器,对CPU的运算能力要求比较高,同时需要非常大的存储空间存放音乐数据,这种要求只合适成本高,功耗大、运算能力强的嵌入式设备,不合适低成本的嵌入式设备。
发明内容
本发明的目的在于解决图3硬件的音乐播放问题。
为实现上述目的,本发明提供一种适用于低成本单片机的音乐生成方法,包括以下步骤:
S1.乐谱中的音符、节拍代表频率和时间信息,根据乐谱中的音符、节拍,生成对应的频率表和时延数据表;
S2.根据频率表和时延数据表,让单片机利用CORDIC快速算法生成相应频率周期信号的离散数据序列,而时延信息决定各个频率的离散数据的数量;
S3.把生成的离散数据,当作音频CODEC的采样数据,输入给音频CODEC,音频CODEC再驱动喇叭播放音乐。
这里,所述音频CODEC是指能够完成语音、音频信号AD/DA转换和A率、μ率编码的芯片,本发明只需要用到音频CODEC的AD/DA转换功能。
优选的,所述CORDIC快速算法,具体包括以下步骤:
S31.将旋转角度θ用弧度表示,因为任意角度三角函数求解都可以转换到(-π/2,π/2)这个范围内求解,这里,θ的范围限定在(-π/2,π/2),需要求解的最大角度是π/2=1.57075;
S32.如图4所示,在平面直角坐标系上,将点(x1,y1)沿坐标原点逆时针旋转θ角度到点(x2,y2),其代数表达式,即旋转方程为:
x2=x1cosθ-y1sinθ
y2=x1sinθ+y1cosθ
提出因子cosθ,旋转方程变为:
x2=x1cosθ-y1sinθ=cosθ(x1-y1tanθ)
y2=x1sinθ+y1cosθ=cosθ(y1-x1tanθ)
S33.去掉cosθ项,得到伪旋转方程:
这样,x与y的值分别增加1/cosθ倍,由于cosθ小于等于1,所以向量的模值变大1/cosθ倍,如图5所示;
S34.控制每次旋转角度θi的值,让tanθi=2-i,第i次伪旋转的坐标为:
di=+/-1
这里,逆时针旋转di=+1,顺时针旋转di=-1;
S35.由于每次旋转中cosθi被忽略,经过n次旋转后,和被放大Kn倍,预先计算出n次伪旋转的副产物即伸缩因子Kn的值:
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于深圳市大语科技有限公司,未经深圳市大语科技有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201710341231.2/2.html,转载请声明来源钻瓜专利网。