基于matlab的声音文件播放器设计_毕业论文设计(编辑修改稿)内容摘要:

3V1);它们的详细特征如下表: 淮南师范学院 20xx 届本科毕业论文 5 表 MP3 各类文件特点 ID3V2 包含了作者,作曲,专辑等信息,长度不固定,扩展了 ID3V1 的信息量 Frame 一系列的帧,个数由文件大小和帧长决定 每个 FRAME 的长度可能不固 定,由位率 bitrate 决定 每个 FRAME 又分为帧头和数据实体两部分 帧头记录了 mp3 的位率,采样率版本等信息,每个帧之间相互独立 ID3V1 包含了作者,作曲,专辑等信息,长度为 128BYTE 一个 MPEG 音频文件是许多的称为帧的较小部分组成的,通常,帧是独立的组成部分,每个帧都拥有之间的头和音频信息,没有文件头。 所以我们可以剪切 MPEG 文件的任何部分并且能够正常播放。 但在 LayerIII 中就并不总是正确的。 帧头格式 下表 ,使用字符 A到 M表示不同的区域 AAAAAAAAAAA BB CC D EEEE FF G H II JJ K L MM A 表示帧同步,都为 1,长度为 11; B 表示 MPEG音频版本 ID ( 00 – MPEG。 01 – 保留; 10 – MPEG 2。 11 – MPEG 1)。 C 表示 Layer 描述,( 00 – 保留 ; 01 LayerIII; 10 – LayerII; 11 LayerI); D 表示校验位 ( 0 有跟 16 位 CRC 校验位; 1 无校验位); E 位率索引,长度为 4,对不同的版本,不同层 索引值表示不同的位率。 单位 Kbit F 采样频率,单位: Hz G 填充位 ( 0 – 无填充; 1 – 额外的填充) H 私有 bit,用做特殊应用 I 声道 ( 00 – 立体声; 01 – 联合立体声; 10 – 双声道; 11 – 单声道); J 扩展模式,仅在联合立体声有效 K 版权 ( 0 – 无版权; 1 – 有版权); L 原创 ( 0 – 拷贝; 1 – 原创); M 强调 ( 00 – 无; 01 – 50/15ms; 10 – 保留; 11 – CCIT ); 基于 MATLAB 的声音文件播放器设计 6 表 帧头 内容图表 MPEG 1 Layer I MPEG 1 Layer II MPEG 1Layer III MPEG,Layer I Layer II amp。 Layer III 0000 FREE 0001 32 32 32 32 8 0010 64 48 40 48 16 0011 96 56 48 56 24 0100 128 64 56 64 32 0101 160 80 64 80 40 0110 192 96 80 96 48 0111 224 112 96 112 56 1000 256 128 112 128 64 1001 288 160 128 144 80 1010 320 192 160 160 96 1011 352 224 192 176 112 1100 384 256 224 192 128 1101 416 320 256 224 144 1110 448 384 320 256 160 1111 Bits MPEG 1 MPEG 2 MPEG 00 44100 22050 11025 01 48000 24000 120xx 10 320xx 16000 8000 11 保留 CRC 校验 如果帧头的校验位为 0 ,则帧头后就有一个 16 位的 CRC 值,这个值是 bigendian的值, 把这个值和该帧通过计算得出的 CRC 值进行比较就可以知道该帧是否有效。 帧数据 在帧头后边是 Side Info(姑且称之为通道信息 )。 对标准的立体声 MP3 文件来说其长度 为 32 字节。 通道信息后面是 Scale factor(增益因子 )信息。 当解码器在读到上述信息后,就可以进行解码了。 当 MP3 文件被打开后,播放器首先试图对帧进行同步,然淮南师范学院 20xx 届本科毕业论文 7 后分别读取通道信息及增益 因子等数据,再进行霍夫曼解码,至此我们已经获得解压后的数据。 但这些数据仍然不能进行播放,它们还处于频域,要想听到歌曲还要将它由频域通过特定的手段转换到时域。 接下来的处理分别为立体化处理;抗锯齿处理; IMDCT变换; IDCT 变换及窗口化滑动处理。 lame 编码器 LAME 是最好的 MP3 编码器,编码高品质 MP3 的最好也是唯一的选择。 LAME本身是 DOS 下的文件,需要加外壳程序才比较容易使用,也可以在别的软件(比如 EAC)中间调用。 是一款出色的 MP3 压缩程序,它使用了独创的人体听音心理学模型和声学模 型,改变了人们对 MP3 高音发哑、低音发破的音质的印象。 LAME 分 DLL 和 EXE 两种版本, DLL 版本做为一个方便的接口程序在大多数抓轨软件中都能看到(比如 AltoMP3Maker),但由于可控性差,与具备丰富调节参数的 EXE版相比,其压缩出来的 MP3 效果稍逊一筹。 VBR( Variable Bitrate) 动态比特率。 也就是没有固定的比特率,压缩软件在压缩时根据音频数据即时确定使用什么比特率,这是以质量为前提兼顾文件大小的方式,推荐编码模式; ABR( Average Bitrate)平均比特率,是 VBR 的一种插值参数。 LAME 针对 CBR 不佳的文件体积比和 VBR 生成文件大小不定的特点独创了这种编码模式。 ABR在指定的文件大小内,以每 50 帧( 30 帧约 1 秒)为一段,低频和不敏感频率使用相对低的流量,高频和大动态表现时使用高流量,可以做为 VBR 和 CBR 的一种折衷选择。 CBR( Constant Bitrate),常数比特率,指文件从头到尾都是一种位速率。 相对于VBR 和 ABR 来讲,它压缩出来的文件体积很大,而且音质相对于 VBR 和 ABR 不会有明显的提高。 3 播放器的设计及方法 本毕业设计 通过抽样插值来改变基频 也使播放速度,播放时间发生改变, 因此通过时长规整的方式来使播放速度 和时间恢复到原来。 重叠叠加算法 本程序使用的是用重叠叠加算法来达到时长规整。 重叠叠加算法原理:它分为两个阶段 ——分解和合成。 将原始信号以帧长 N,帧间距 sa 进行分解,然后以帧间距 ss 进行合成。 sa 与 ss 的的比值决定了时长规整因子 F=sa/ss。 为保证重叠区域幅度不变,加了汉明窗。 基于 MATLAB 的声音文件播放器设计 8 Matlab 的实现 算法 Matlab 的实现及程序流程分为编程和 gui 的设计编 程, y=resample(x,i,d)。 %重采样来达到抽值和插值的目的,然后就是时长规整。 在具体介绍算法之前,先简要地介绍一下几种参数: 1) W:窗长度( Window Length)。 它代表了接受处理的语音信号的最小长度。 2) Sa:分析延时( Analysis shift)。 它代表了依次截取并进行处理的语音段首地址之间的间隔。 3) Ss:综合延时( Synthesis shift)。 依次输出的语音段首地址之间的间隔。 4) kmax:查找延时。 这一延时是指分析窗口为了与输出信号的尾部相一致而必须发生的一段延时。 5) Wov:后一段语音与前一段语音相叠加的长度。 整个算法首先将语音段中的前 W 个数值取出来,直接存入到输出序列中。 然后根据 Sa 的值取出下一段语音,也就是从第 Sa 个点开始取,一直取 W 个点。 然后将这 W个点中的前 Wov 个点与输出序列的最后 Wov 个点进行比较,比较它们之间的一致性。 记录下比较的情况,然后整个分析窗口(也就是截取 W 个点的窗口)向后移动一个样值,再将新的序列中的前 Wov 个点与输出序列中的后 Wov 个点进行比较,同时记录下比较结果。 这样依次做 Kmax。
阅读剩余 0%
本站所有文章资讯、展示的图片素材等内容均为注册用户上传(部分报媒/平媒内容转载自网络合作媒体),仅供学习参考。 用户通过本站上传、发布的任何内容的知识产权归属用户或原始著作权人所有。如有侵犯您的版权,请联系我们反馈本站将在三个工作日内改正。