2024年5月26日发(作者:)

基于Matlab的MP3播放器

1. 概述

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播放器。

2. MP3文件格式

MP3文件大体分为三部分:TAG_V2(ID3V2),frame,TAG_V1(ID3V1)

ID3V2

Frame

包含了作者,作曲,专辑等信息,长度不固定,扩展了ID3V1的信息量

一系列的帧,个数由文件大小和帧长决定

每个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

0000

0001

0010

0011

0100

0101

0110

0111

1000

1001

1010

1011

1100

FREE

32

64

96

128

160

192

224

256

288

320

352

384

32

48

56

64

80

96

112

128

160

192

224

256

32

40

48

56

64

80

96

112

128

160

192

224

32

48

56

64

80

96

112

128

144

160

176

192

8

16

24

32

40

48

56

64

80

96

112

128

MPEG 1

Layer II

MPEG 1

Layer III

MPEG 2,2.5

Layer I

Layer II &

Layer III