简介
MP4全称为MPEG-4,是一种集音频、视频、收音机等于一体的多功能播放器,是嵌入式系统在消费电子领域的典型发展,语音信号是类似MP4嵌入式系统中常见的一种信号,其特征是典型的基于时间轴上的一维数字信号,MP4通过数字信号处理器DSP来完成处理传输和解码MP4文件的任务。其中主要利用数字信号处理算法对模拟信号数字化后的数据进行处理是决定系统性能的一个关键问题。高质量低速率的语音编码技术是其中最主要的要求,它将模拟语音信号变成数字信号以便在信道中传输。除了通信带宽的要求外,嵌入式系统存储容量的限制也要求对语音进行压缩,以满足巨量数据情况下进行实时或准实时微处理器处理的目的。1
目前国内外在语音处理领域的研究焦点集中在两个方面:
(1)在保证语音质量的前提下,降低数据率,该方法由于数据量的下降对保证语音质量不利;
(2)对传统的语音编码器进行全频带扩展,使其适应音频的应用,但是该方法扩展带宽必然造成数字化后数据量的增加,也不利于满足嵌入式实时处理的要求。1
处理过程在通话过程中,跟用户最直接打交道的是说和听,所以语音数据处理的好坏直接影响了系统实现的成败。语音数据处理的整个过程可以分为两个部分:
A/D转换A/D转换,即把原始声音的模拟输入转化为数字化信息。
D/A转换D/A转换,即把数字信息转化为模拟数据。2
语音数据的编解码采用的AMR语音编码支持4.65~12.2Kb/s的8种编码速率,其算法复杂度较高,程序代码量较大,结构较为复杂。
编码流程3GPP TS26.104 V6.1.0(Release6)ANSI-C源代码中编码主程序为coder.c,该程序的执行流程为:
(1)处理命令提示符;
(2)打开模式控制文件;
(3)打开语音输入文件及编码输出文件;
(4)初始化编码器;
(5)以帧为单位压缩语音;
(6)将编码后的比特流写入编码输出文件;
(7)释放编码器。2
解码流程源代码中解码主程序为decoder.c,该程序的执行流程为:
(1)处理命令提示符;
(2)打开解码输入及输出文件;
(3)初始化解码器;
(4)以帧为单位解码语音将合成语音数据写入解码输出文件;
(5)释放解码器。2
基于FFT和FIR滤波的语音数据处理在信号处理中,频域通常包含了更丰富的信息,对于不同的波形,一般均可以用傅里叶变换分析:即将时域的波形转化到频域分析。MP4音频中,由于干扰的存在,对数字化的信号,必须采取合适的算法进行滤波处理予以消除。以MP4语音信号处理为例,将快速傅里叶变换FFT与FIR滤波方法相结合,以提高嵌入式系统语音处效果。1
MP4的典型系统结构MP4的系统结构主要包括以下几部分:
(1)DSP+CPU,TLV320AIC23B;
(2)耳机电路;
(3)收音电路;
(4)显示模块;
(5)键盘电路;
(6)USB电路;
(7)电源电路;
(8)录音电路;
(9)存储系统。
系统要求中央处理器和DSP有较高的处理能力,而且要有一定的系统内存。另一方面,由于干扰的存在会影响音频的质量。1
信号输出过程(1)MP4歌曲文件从内存中取出并读取存储器上的信号;
(2)到解码芯片对信号进行解码;
(3)通过数模转换器将解出来的数字信号转换成模拟信号;
(4)再把转换后的模拟音频放大;
(5)低通滤波后到耳机输出口,输出后就是我们所听到的音乐了。1
基于FFT的MATLAB语音仿真主要思想FFT是在离散傅里叶变换DFT基础上的快速算法。利用FFT进行处理时,首先利用MATLAB命令中Wavread来获取语音数据,然后将它给向量x(n)表示,并将该向量视为普通的数据序列,对该序列进行FFT变换,进行时域频谱分析,之后按照某个算法对它进行滤波。对于滤波前后波形图可以用MATLAB直观地画出。另外,还可以利用MATLAB的sound命令来对语音信号进行回放,从而从听觉上对比处理效果。1
数字滤波器设计的主要目的数字滤波器设计的主要目的是实现因果稳定的一个线性时不变系统,所设计的系统函数要有特定的幅频特性。从滤波器的单位冲激响应或系统结构来看,数字滤波器可以分为无限长单位冲激响应(IIR)数字滤波器和有限长单位冲激响应(FIR)。IIR的系统函数为有理分数,其逼近问题就是求解滤波器的系数,使得在规定的物理意义上逼近所要求的特性的问题。如果是在s平面上逼近,则得到模拟滤波器;如果是在z平面上逼近,则得到数字滤波器。FIR数字滤波器是单位脉冲响应函数H(n)为实数,长度为N。按频域采样定理,FIR数字滤波器的传输函数H(z)和单位脉冲响应H(n)可由它的N个频域采样值H(k)唯一确定。1