作业帮 > 综合 > 作业

C语言计算声音的频率和振幅

来源:学生作业帮 编辑:作业帮 分类:综合作业 时间:2024/11/08 19:55:30
C语言计算声音的频率和振幅
现在有外接设备对计算机的MIC孔输入特定的声音,计算机如何对收到的声音计算出频率和振幅?
小弟无从下手了~
很简单的.
计算机发声原理:
声音有三个特性:响度、音调、音色.
响度,这个非常好理解.就是我们感觉到的声音的大小.具体点说就是由“振幅”决定,振幅越大响度越大.一般计量响度的单位是分贝,dB.
音调,这个就是声音的高低,由“频率”决定,频率越高音调越高.频率单位是赫兹,符号Hz.
音色,在生活当中,我们会发现各种物品发出的声音的特点是不一样的,如二胡和笛子.声音的特性就是音色.而决定声音的音色是由于物体本身的材料、结构.
对于我们的计算机而言.发声的设置都是固定了的.要么要计算机上的那个喇叭,那么是外接的音响等.
现在这里对计算机上的那个喇叭用Turbo C 2.0进行编程,使之发出动听的音乐《梁祝》.
第一步:定义《梁祝》的每一个音符的频率和时间,将定义好的频率和时间写入文件或者保存在数组里面.如果仅仅是写一两个程序自己玩玩的话,那直接保存在数组里面就可以了.如果你想自己写个播放器的话,那你先自己定义一种音乐格式文件(类似.mp3、.wav这种文件,这里暂时把这个文件定为.mymusic),将《梁祝》每个音符的频率、时间写入这个自定义的音乐格式文件liangzhu.mymusic.
第二步:完成了liangzhu.mymusic文件的定义后,我们要做的事情就是读文件,控制喇叭发声.这个具体可以参照现有的资料.这里需要事先写几个函数,读文件的函数,暂停函数,频率对照函数等等.
第三步,将上面的程序链接起来,就OK了.
将上面的步骤优化下,一个DIY的音乐播放器就成功了.
我上面说的只是控制了声音的频率和时间,其实还可以控制响度.对于一些特殊的设备,控制音色也不是不可能.
这种程序我在大一的时候写过.现在想起来不难的.
主要是对C语言是否熟练,当然,你想要实现一个播放器,那你途中会遇到很多困难的.