Transcript
Page 1: 基于 FPGA的音频分析系统实现 - globesci.com · 基于FPGA芯片采用VHDL语言实现FFT处理硬核,其 组成部分主要包括串行数据转并行数据单元、双端口RAM

第33卷2011年4月

  第2期214-216页

世界科技研究与发展WORLDSCITECHR&D

Vol.33Apr.2011

  No.2pp.214-216

第214   页 www.globesci.com

基金项目:“211工程”三期创新人才培养计划建设项目(S09102)通讯作者:Email:xcliqi8686@yahoo.com.cn

基于 FPGA的音频分析系统实现

黄扬帆 王 璐 甘 平 黄 发(重庆大学通信工程学院,重庆 400044)

摘 要:采用Altera公司的FPGA芯片EP2C20作为控制和运算核心,实现对频率范围在20Hz~20kHz的音频信号分析和测试。采用FFT算法对音频信号进行频谱分析和计算处理,实现失真度分析,并完成信号总功率、各分量频率、周期等参数分析测量。采用TFTLCD作为显示终端,能够直观显示功率谱曲线和各测试参数值。通过软件分析对比测试发现,该系统实时性强,测量准确度高,误差优于03%,可以有效完成音频信号分析和处理。关键词:EP2C20;音频分析;FFT算法;系统设计中图分类号:TP302   文献标识码:A   

ImplementationofAudioAnalysisSystemBasedonFPGA

HUANGYangfan WANGLu GANPing HUANGFa(CollegeofCommunicationEngineering,ChongqingUniversity,Chongqing400044)

Abstract:AlterasFPGAchipEP2C20isusedasthecontrolandoperationcoretoanalyseandtesttheaudiosignalinthefrequencyrangeof20Hz~20kHz.FFTalgorithmusedforspectralanalysisandcomputationofaudiosignal,distortionanalysis,analysingandmeasuringthesignalstotalpower,frequencyofeachcomponent,periodandotherparameters.TFTLCDisusedasitsdisplayterminalsoastogetadirectviewingshowofpowerspectrumandtestparameters.Bysoftwareanalysisandcomparisontest,itisprovedthatthissystemisstrongrealtime,withhighmeasurementaccuracyandlessthan03% error.Theaudiosignalanalysisandprocessingcanbecompletedeffectively.Keywords:EP2C20;audioanalysis;FFTalgorithm;systemdesign

1 引言

音频是信息交互的一种重要媒体,人类能够听见的音频

信号的频率范围大约是20Hz~20kHz。对全范围的语音信号分析则可以用来衡量各类音频设备的性能,同时音频信号

分析是声信号定位、语音合成、语音识别、语音增强等技术的

前提和基础,因此音频分析系统是非常重要并在众多领域中

被广泛使用的测量仪器之一。音频分析利用时域分析、频域

分析、失真分析等方法,通过测量各类音频参数来评价音频

系统的性能。随着信息技术和集成电路技术的高速发展,基

于快速傅里叶变换(FFT)的现代音频分析系统已成为音频分析技术发展的主流。通过傅里叶变换将被测信号分解频

率分量,这类音频分析仪采用模拟/数字转换器(ADC)对输入音频信号采样,将模拟信号转换为数字信号后再经FFT处理获得各自的频谱分量。

音频分析系统的核心算法是 FFT,FFT的性能用取样点数和取样率来表征,最高输入频率取决于采样率,分辨率取

决于采样点数。FFT运算时间与采样点数成对数关系,在进行高频率、高分辨率的高速运算时,要求选用高速的 FFT硬件或者相应的数字信号处理器(DSP)芯片。目前音频分析系统主要采用 DSP芯片来实现控制和核心运算[1,2],但是

DSP芯片在内部时钟、系统结构、指令模式等方面都是基于串行工作和流水线方式设计的,对采样数字信号处理的实时

性和精确性有一定的局限。基于此问题,本文采用具有并行

处理能力的 FPGA芯片作为核心控制器来完成 FFT等运算功能,实现音频信号分析和计算处理,增强信号处理的实时

性,依靠FPGA内部的数控锁相环技术获得较高的系统时钟,提高处理的精确性。采用 Altera公司的 FPGA芯片EP2C20[3]作为控制和运算核心,实现对频率范围在20Hz~20kHz的音频信号分析和测试;采用FFT算法对音频信号进行频谱分析和计算处理,实现失真度分析,并完成信号总功

率、各分量频率、周期等参数分析测量;采用TFTLCD作为显示终端,能够直观显示功率谱曲线和各测试参数值。

2 分析算法

音频分析系统采用 FFT算法[4]对音频信号进行频谱分

析和计算处理,结合相关性原理进行失真度分析,并完成信

号总功率、各分量频率、周期等参数分析测量。

如果失真的周期性音频信号,除了基波电压分量外,还

存在各次谐波分量,将其展开成傅立叶级数,可以表示为:

x(t)=A02+∑

n=1Ansin(nω0t+φn) (1)

其中,x(t)是含有谐波分量的周期性音频信号,An为第 n次谐波的振幅。

An =1T∫

0x(t)e-jnω0tdt (2)

式中,A0/2为正弦波中直流分量,n为失真波中所含最高谐波分量数,ω0是正弦波基波角频率,φn是第 n次谐波相对于基波的初相角。

2.1 功率谱测量功率谱的测量,采用利用 CooleyTukey法[5]。首先将音

频信号x(t)为采样后数据信号 x(n),再进行 FFT变换得到频谱,在每次的 FFT计算中,采样 2048个点,即 N=2048,采样频率为441k,所用离散傅立叶变换公式为

X(k)=∑N-1

n=0x(n)e-j

2πNnk k=0,1,2,…N-1 (3)

Page 2: 基于 FPGA的音频分析系统实现 - globesci.com · 基于FPGA芯片采用VHDL语言实现FFT处理硬核,其 组成部分主要包括串行数据转并行数据单元、双端口RAM

2011年4月    世界科技研究与发展 自动化、计算机技术

www.globesci.com 第215   页

其中,x(n)为输入采样信号,X(k)为变换后的频域信号,然后利用功率谱计算式。

SX^(k)= 1N X(k)2 k=0,1,2,…N-1 (4)

其中,SX^(k)即为对应频点的功率谱。

2.2 失真度测量失真度的定义为所有谐波能量之和除以基波能量后的

平方根。其表达式为:

  γ=U22+U

23+…U

2n

U槡 21

(5)

其中,γ为失真度,U1为基波电压的有效值,U1-Un为谐波

电压的有效值,且 Un=An/2,n=1,2,…n。求出各次谐波的幅值,可以计算出信号的失真度。式(1)和(2)中 An为第 n次谐波的振幅,采用FFT法,式(5)可以表示为:

γ=A22+A

23+…A

2n

A槡 21

(6)

2.3 周期测量如果输入信号为周期性信号,那么在功率谱中的对应频

点上,应该会出现尖峰值。因此在输出功率谱中,我们统计

除了0频点的各个功率值,如果其中没有任何一个功率幅值能够超过设定的阈值,说明输入信号为非周期信号,否则为

周期信号,其阈值的设定通过多次测试比较确定。

假定输入信号由多个频率成分组成,其表达式为

f(t)=A1sin(ω1t)+A2sin(ω2t)+A3sin(ω3t) (7)其中,输出信号f(t)的频率为各分量 ω1、ω2、ω3的最大公约数。测出信号功率谱中的各频率,然后计算所有有效频点的

最大公约数就是频率f,周期T=1/f。

3 系统设计与实现

音频分析系统采用专用语音采集芯片 WM8731[6]获得16bit采样数据,将采样数据送入FPGA,并基于FPGA的逻辑单元和内嵌式存储单元采用VHDL语言设计实现FFT算法。由此计算出音频信号的各个信号分量的频谱,然后将计算结

果送入内嵌的软核处理器 NiosII,采用 C语言进行功率谱的计算,将频率谱和功率谱通过图形方式显示在LCD320×240的真彩色液晶屏上。设计中数据处理采用并行方式,速度

快,音频采样数据位数达到16位,并运用嵌入式CPU实现浮点运算和图形化显示。图1为系统原理框图。

图1 系统原理框图Figure1 Principleconfigurationofthesystem

系统设计采用音频采集芯片 WM8731,该芯片输入阻抗为10~20K,支持的数字音频的位数可以是16位至32位,采样精度高,能够无失真采集电压范围(峰峰值)为80mV~52V的音频信号,采样率设置为441kHz,能够采集20Hz~20kHz的信号。其中数字音频接口采用来自内部 ADC数字滤波器的数据并在 ADCDAT输出上。ADCDAT是来自ADC的数字滤波器的格式化数字音频数据流输出,左/右声道复用在一起。ADCLRC是一个对齐时钟,在ADCDAT线上控制左或右通道数据。通过总线时钟先高后低的过渡,ADCDAT和ADCLRC过渡标志的每个数据位时同步的。图 2为WM8731音频信号采样电路原理图:

图2 WM8731音频信号采样电路原理图Figure2 PrincipleconfigurationofWM8731audiosignalsamplingcircuit

Page 3: 基于 FPGA的音频分析系统实现 - globesci.com · 基于FPGA芯片采用VHDL语言实现FFT处理硬核,其 组成部分主要包括串行数据转并行数据单元、双端口RAM

自动化、计算机技术 世界科技研究与发展    2011年4月

第216   页 www.globesci.com

  基于FPGA芯片采用VHDL语言实现FFT处理硬核,其组成部分主要包括串行数据转并行数据单元、双端口 RAM数据存储单元、FFT运算单元、旋转因子产生器(ROM)、地址生成及控制单元、倒序单元六个模块。实现算法基于第2部分的FFT算法,FFT运算单元是硬核处理的重点单元,FFT运算单元的核心采用蝶形运算方式,利用 EP2C20内嵌的DSP乘法模块实现乘法器和加法器的设计,采用VHDL语言实现定点 FFT处理器。在所设计的定点 FFT基础上采用两个有符号的定点数来实现复数 FFT功能,并用补码表示负数。所设计的FFT处理器是2048点输入为16位的复数处理器。图3是FFT硬核处理单元结构图。

图3 FFT硬核处理单元结构图Figure3 Chartofhard_coreprocessingunit

将FFT单元的频谱数据结果送入内嵌的软核处理器NiosII,采用C语言进行功率谱测量、失真度测量、周期测量,将频率谱和功率谱通过图形方式显示在屏幕上。

4 实验测试

功率谱和失真度测量方法采用输入含有多个谐波分量

的类正弦波音频信号,基波频率为1kHz,采样频率为441kHz,输入幅度1V。通过音频分析系统,测试其频谱分量,并获得对应功率谱和失真度。图4为输入基波为1kHz的含谐波分量音频信号,图形获取通过基于 FPGA的嵌入式逻辑分析仪得到。经过分析系统计算得到其功率谱如表1。

图4 输入基波为1kHz的含谐波分量音频信号Figure4 Audiosignalthatinputfundamentalfrequencyis1kHz

containingharmoniccomponent表1 采集得到的数据Table1 Thesampleddata

频率(kHz) 1.02 1.97 2.94 3.96功率值(W) 0.83 0.11 0.04 0.02

  音频周期性测试方法是当输入纯音信号时,按照第2部分周期性测量原理测量实测周期及其误差,测试结果如表2。将相同信号输入通过声卡采样后,采用Matlab工具实现音频信号分析[7],其结果与音频分析系统获得的结果基本一致,

测量准确度高、误差优于03%。表2 实测周期及其误差

Table2 Measurementcycleanderror

输入周期(s) 实测周期(s) 误差(%)0.05 0.049 20.004 0.0039 2.50.0005 0.00049 20.0007 0.00069 1.4

5 结论

本文以FPGA芯片 EP2C20作为控制和运算核心,实现对频率范围在20Hz~20kHz的音频信号分析和测试,采用专用语音采集芯片WM8731获得16bit采样数据,利用FPGA的逻辑单元和内嵌式存储单元采用 VHDL语言设计实现FFT算法,采用内嵌于FPGA的软核处理器NiosII,用C语言完成功率谱测量、失真度测量、周期测量计算,并将结果显示

在LCD320×240的真彩色液晶屏上。音频分析系统采用FFT算法对音频信号进行频谱分析和计算处理,实现失真度分析,并完成信号总功率、各分量频率、周期等参数分析测

量。实验测试结果表明系统的实时性强,采样精度高,误差

优于03%,能有效完成音频信号分析和处理。

参考文献[1]张家田,封川川,严正国.基于 DSP的音频信号分析仪设计[J].西安石油大学学报(自然科学版),2009,24(1):8588.

[2]孙伟,郭宝龙,陈龙.一种新的音频分析系统的实现方法[J].仪器与仪表学报,2009,30(11):22492254.

[3]ALTERA.CydoneⅡ DeviceHandlook:SectionsIV.I/OStandards[EB/OL].http://www.altera.com.cn,2004.

[4]丁玉美,高西全.数字信号处理[M].3版.西安:西安电子科技大学出版社,2008:97127.

[5]张长森.数字信号处理[M].北京:中国电力出版社,2007:97100.

[6]王杰玉,杜炜,潘红兵.基于 FPGA的音频编解码芯片接口设计[J].现代电子技术,2009,5:179181.

[7]陈宇锋.基于声卡和 MATLAB的语音信号采集和处理[J].中国现代教育装备,2006,5:4951.

作者简介

黄扬帆(1964),男,高级工程师,主要研究方向:信号与信息处理。王璐(1986),女,硕士研究生,主要研究方向:信号与信息处理。甘平(1974),男,副教授,主要研究方向:信号与信息处理。黄发(1986),男,硕士研究生,主要研究方向:电路与系统。


Top Related