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
发布评论