文档详情

基于Matlab的MP3播放器.doc

发布:2017-06-05约5.88千字共11页下载文档
文本预览下载声明
基于Matlab的MP3播放器 概述 MP3的全称为MPEG1(Moving Picture Experts Group) Layer – 3音频文件。它根据压缩质量和编码复杂程度划为三层,Layer – 1 、Layer – 2 、Layer – 3 ,且分别对应MP1 、MP2\ MP3 这三种声音文件,并根据不同的用途,使用不同层次的编码。MPEG音频的层次越高,编码器越复杂,压缩率也越高,MP3的压缩率则高达10:1 – 12:1。 MATLAB 是国际上公认的最优秀的科技应用软件,它在数据分析和处理功能都是很强大,利用它可以灵活方便地处理音频信号。本文将使用matlab对MP3进行解码,做一个简易的MP3播放器。 MP3文件格式 MP3文件大体分为三部分:TAG_V2(ID3V2),frame,TAG_V1(ID3V1) ID3V2 包含了作者,作曲,专辑等信息,长度不固定,扩展了ID3V1的信息量 Frame 一系列的帧,个数由文件大小和帧长决定 每个FRAME的长度可能不固定,由位率bitrate决定 每个FRAME又分为帧头和数据实体两部分 帧头记录了mp3的位率,采样率版本等信息,每个帧之间相互独立 ID3V1 包含了作者,作曲,专辑等信息,长度为128BYTE 一个MPEG音频文件是许多的称为帧的较小部分组成的,通常,帧是独立的组成部分,每个帧都拥有之间的头和音频信息,没有文件头。所以我们可以剪切MPEG文件的任何部分并且能够正常播放。但在LayerIII中就并不总是正确的。 2.1、帧头格式 下面是一个头内容图示,使用字符A到M表示不同的区域 AAAAAAAAAAA BB CC D EEEE FF G H II JJ K L MM A 表示帧同步,都为1,长度为11; B 表示MPEG音频版本ID (00 – MPEG 2.5; 01 – 保留; 10 – MPEG 2; 11 – MPEG 1); C 表示Layer描述,(00 – 保留 ; 01- LayerIII; 10 – LayerII; 11 - LayerI); D 表示校验位 (0 有跟16位CRC校验位; 1 无校验位); E 位率索引,长度为4,对不同的版本,不同层索引值表示不同的位率;单位Kbit MPEG 1 Layer I MPEG 1 Layer II MPEG 1 Layer III MPEG 2,2.5 Layer I Layer II 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 F 采样频率,单位:Hz Bits MPEG 1 MPEG 2 MPEG 2.5 00 44100 22050 11025 01 48000 24000 12000 10 32000 16000 8000 11 保留 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 J.17); 2、2 CRC 校验 如果帧头的校验位为0 ,则帧头后就有一个16位的CRC值,这个值是big-endian的值,把这个值和该帧通过计算得出的CRC 值进行比较就可以知道该帧是否有效。 2、3 帧数据 在帧头后边是 Side Info(姑且称之为通道信息)。对标准的立体声 MP3 文件来说其长度为 32字节。通道信息后面是 Scale factor(增益因子)信息。当解码器在读到上述信息后,就可以进行解码了。当 MP3 文件被打开后,播放器首先试图对帧进行同步,然后分别读取通道信息及增益因子等数据,再进行霍夫曼解码,
显示全部
相似文档