ImageVerifierCode 换一换
格式:DOCX , 页数:29 ,大小:327.01KB ,
资源ID:16939228      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bingdoc.com/d-16939228.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(数字音频均衡器设计本科毕设论文.docx)为本站会员(b****0)主动上传,冰点文库仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰点文库(发送邮件至service@bingdoc.com或直接QQ联系客服),我们立即给予删除!

数字音频均衡器设计本科毕设论文.docx

1、数字音频均衡器设计本科毕设论文科类 理工科 编号(学号) 20051867 本科生毕业论文(设计)数字音频均衡器设计The design of digital audio equalizer阮志强指导教师: 赵红伟 (讲师)云南农业大学 昆明 黑龙潭 650201学 院: 基础与信息工程学院 专 业: 电子信息工程 年级: 2005 论文(设计)提交日期: 2009年5月 答辩日期: 2009年6月 答辩委员会主任: 杨林楠 云南农业大学2009年5月目 录摘 要 1ABSTRACT 21 前言 32设计原理 52.1均衡器分类 52.2数字滤波器 62.2.1数字滤波器的原理简介 62.2.

2、2 FIR与IIR滤波器的比较与选择 72.2.3 IIR数字滤波器的设计方法 72.3均衡器的原理 72.4 软件设计 82.4.1 数据流图 82.4.2 模块划分 93软件实现 103.1界面设计 103.2均衡器模块的实现 113.3 Filter函数 123.4 实时显示的实现 124运行实例与实验分析 144.1运行实例 144.2 实验分析 175总结与展望 175.1总结 175.2展望 17参考文献 18致 谢 19附录 20摘 要MATLAB 的应用范围非常广,包括信号和图像处理、通讯、控制系统设计、测试和测量、财务建模和分析以及计算生物学等众多应用领域。附加的工具箱(单独

3、提供的专用 MATLAB 函数集)扩展了 MATLAB 环境,以解决这些应用领域内特定类型的问题。通过Matlab强大的信号仿真功能,分析数字音频均衡器的设计要求,对各种数字音频信号进行滤波处理,设计出一种比较合理的数字均衡器,最后对该数字均衡器进行综合测试并改进,使其达到要求的指标。 关键词:均衡器;MATLAB;数字滤波器;ABSTRACTMATLAB is very wide range of applications, including signal and image processing, communications, control system design, test a

4、nd measurement, financial modeling and analysis, and computational biology and many other applications. Toolbox additional (separate MATLAB function provided by a dedicated set) extends the MATLAB environment to solve these applications within a specific type of problem.Through a strong signal simul

5、ation capabilities, a kind of reasonable digital equalizer has been designed by analysising the design requirements of digital equalizers and makig filtering deal to a variety of digital equalizers. At last, the standard has been reached after the integrated test and improvement for this digital equ

6、alizer. Key words: Equalizer;MATLAB;Digital filter;1 前言随着数字化技术的快速、深入发展,人们对数字化电子产品所产生的图像、图形以及声音等质量的要求越来越高。在声音的拾取过程及通过音响设备的传送过程中,由于设备或器件的原因,其幅度对频率的响应往往不一致,这样就达不到原来的听觉效果,音频均衡器是音响设备中常用的一种音效处理技术,目的是对某一频段内的信号进行增强或衰减,以改善音响设备输出的频响特性,提高听觉效果。一个好的均衡器能起到以下几个方面的作用:(1) 能校正音频设备所产生的频率失真;(2) 校正由于建筑学共振性的不均匀所带来的传输增益的频

7、率失真;(3) 调整某些易反馈的频率成分,抑制声反馈,提高会场增益;(4) 在艺术创作中,利用它来刻画演员和乐器的音色修改,提高艺术效果。现有的许多播放器都具有均衡器的功能,如千千静听(如图 1所示)等。通过调节均衡器可以得到最佳音乐状态。图 1 千千静听的均衡器Figure 1 the equalizer of TT playerMATLAB是一个数据分析和处理功能十分强大的工程实用软件,它的滤波器设计工具箱为实现声音信号的数字滤波提供了十分方便的函数和命令,本文将给出基于MATLAB的数字均衡器(图示均衡器)的设计方法,功能包括:(1)WAV声音信号获取,即从文件(*.wav)读取音频信息

8、;(2)八段数字均衡器设定,具体按照表 1中的频段,其中前两个频段合并在一起;(3)滤波,包括生成低通、高通、带通滤波器并显示滤波器的频率特征曲线;(4)播放,播放滤后音频信号并实时显示波形及频谱特性。3060Hz沉闷如没有相当大的响度,人耳很难感觉。60100Hz沉重80Hz附近能产生极强的“重感”效果,响度很高也不会给人舒服的感觉,可给人以强烈的刺激作用。100200Hz丰满200500Hz力度易引起嗡嗡声的烦闷心理。5001KHz明朗800Hz附近如提升10dB,会明显产生一种嘈杂感,狭窄感。1K2KHz透亮2800Kz附近明亮感关系最大。2K4Kz尖锐3400Hz易引起听觉疲劳。4K8

9、Kz清脆6800Hz形成尖啸,锐利的感觉。8K16Kz纤细7.5KHz音感清彻纤细。表 1频率的音感特征Table 1 Frequency characteristics of sound sense由此可见150Hz以下(低音)应是丰满、柔和而富有弹性;150Hz-500Hz(中低音)应是浑厚有力百不混浊;500Hz-5KHz(中高音)应是明亮透彻而不生硬;5KHz以上(高音)应是纤细,圆顺而不尖锐刺耳。 整个频响特性平直时:声音自然丰满而有弹性,层次清晰圆顺悦耳。频响多峰谷时:声音粗糙混浊,高音刺耳发毛,无层次感扩声易发生反馈啸叫。2设计原理2.1均衡器分类2.1.1均衡器分类均衡器分为三

10、类:图示均衡器,参量均衡器和房间均衡器。1图示均衡器:亦称图表均衡器,通过面板上推拉键的分布,可直观地反映出所调出的均衡补偿曲线,各个频率的提升和衰减情况一目了然,它采用恒定Q值技术,每个频点设有一个滑动条,无论提升或衰减某频率,滤波器的频带宽始终不变。常用的专业图示均衡器则是将20Hz20kHz的信号分成8段、10段、15段、27段、31段来进行调节。这样人们根据不同的要求分别选择不同段数的频率均衡器。一般来说10段均衡器的频率点以倍频程间隔分布,15段均衡器是2/3倍频程均衡器,31段均衡器是1/3倍频程均衡器,在比较重要的需要精细补偿的场合下,图示均衡器结构简单,直观明了,故在专业音响中

11、应用非常广泛。 2参量均衡器:亦称参数均衡器,对均衡调节的各种参数都可细致调节的均衡器,多附设在调音台上,但也有独立的参量均衡器,调节的参数内容包括频段、频点、增益和品质因数Q值等,可以美化(包括丑化)和修饰声音,使声音(或音乐)风格更加鲜明突出,丰富多彩达到所需要的艺术效果。 3房间均衡器,用于调整房间内的频率响应特性曲线的均衡器,由于装饰材料对不同频率的吸收(或反射)量不同以及简正共振的影响造成声染色,所以必须用房间均衡器对由于建声方面的频率缺陷加以客观地补偿调节。频段分得越细,调节的峰越尖锐,即Q值(品质因数)越高,调节时补偿得越细致,频段分的越粗则调节的峰就比较宽,当声场传输频率特性曲

12、线比较复杂时较难补偿。 2.1.2 图示均衡器的实现关键此设计的实现关键是设计出满足一定性能指标的各个数字滤波器,构成一个覆盖整个音频频段的滤波器组。2.2数字滤波器2.2.1数字滤波器的原理简介数字滤波器的功能是把输入序列通过一定的运算,变换成输出序列。数字滤波器一般可用两种方法实现:一种是根据描述数字滤波器的数学模型或信号流程图,用数字硬件构成专用的数字信号处理机,即硬件方式;另一种是编写滤波器运算程序,在计算机上运行,即软件方式。考虑到软件的灵活性及易于实现,本文采用软件方式实现数字滤波器。数字滤波器有无限冲激响应(IIR)和有限冲激响应(FIR)两种。下面分别介绍:(1) IIR滤波器

13、IIR滤波器的特点是:单位冲激响应h(n)是无限长的;系统函数H(z)在有限长Z平面(0|Z|0处收敛,极点全部在z=0处(即FIR一定为稳定系统);结构上主要是非递归结构,没有输出到输入反馈。但有些结构中也包含有反馈的递归部分。其系统函数的一般形式为 (3)对应的差分方程为 (4)FIR系统的基本结构有直接型、级联型、快速卷积型、频率取样型等。2.2.2 FIR与IIR滤波器的比较与选择IIR滤波器可以用比FIR滤波器少的阶数来满足相同的技术指标,这样,IIR滤波器所用的存储单元和所用的运算次数都比FIR滤波器少。FIR滤波器可得到严格的相位,而IIR滤波器不能得到。事实上,IIR滤波器的选

14、频特性越好,它的相位的非线性就越严重。因此在需要严格线性相位的情况下应该选择FIR滤波器。IIR滤波器可利用模拟滤波器现成的设计公式、数据和表格,因而计算工作量较小,对计算工具要求不高。FIR滤波器没有现在的设计公式,对计算工具要求较高,需要借助计算机来设计。另外,IIR滤波器主要是设计规格化的、频率特性为分段常数的标准低通、高通、带通、带阻和全通滤波器,而FIR滤波器可设计出理想正交变换器、理想微分器、线性调频器等各种网络,适应性较广。总之,IIR和FIR这两种滤波器各有特点,在实际应用中空间选择中哪种滤波器,就从多方面的因素来考虑。对于数字均衡器,一方面是用于处理语音信号,另一方面需要用到

15、频率特性分段的带通滤波器,因此选用IIR滤波器。下面介绍IIR滤波器的设计方法。2.2.3 IIR数字滤波器的设计方法设计步骤大致分以下三步:(1) 设计模拟滤波器。根据实际需要确定滤波器的参数,利用的滤波器的设计公式设计出模拟滤波器并得到其传递函数H(s),常用的滤波器有巴特沃斯滤波器、椭圆滤波器和切比雪夫滤波器;(2) 将模拟滤波器转换成数字滤波器。利用冲激响应不变法或双线性变法将H(s)转换成H(z),不同的设计方法对应于不同的s平面到z平面的映射公式;(3) 频率变换。上述方法得到的是低通滤波器,利用变换公式作频率变换得到高通、带通滤波器。2.3均衡器的原理均衡器的基本功能是调节各频段

16、的信号强弱,为了满足该功能,本文采用如下的方法:Step1:设计出对应八个频段的八个带通滤波器;Step2:对原始信号分八路用八个带通滤波器进行滤波;Step3:将八个滤波器的滤波结果加权求和,权值的设计与均衡器的调节要求一致。这样最终得到的结果便是所需要的均衡结果。设原始输入信号为x(n),第i路的输出信号为,第i路的权值为,均衡器的输出信号为y(n),则有 (5) (6)式中,、为滤波器的参数,N为滤波器的阶数。2.4 软件设计2.4.1 数据流图数据流图(DFD)是一种图形化技术,它描绘信息流和数据从输入移动到输出的过程中所经受的变换。在数据流图中没有任何具体的物理元素,它只是描绘信息在

17、软件中流动和被处理的情况。设计数据流图时只需考虑系统必须完成的基本逻辑功能,而不用考虑具体实现,因而它是进行软件设计很好的出发点。面向数据流的设计方法的目标是给出设计软件结构的一个系统化的途径。结合上一节的内容,可以得出软件的数据流图如图 2所示。图 2 均衡器的数据流图Figure 2 The DFD of equalizer2.4.2 模块划分模块化就是把程序划分成独立命名且可独立访问的模块,每个模块完成一个子功能,把这些模块集成起来构成一个整体,可以完成指定的功能满足用户需求。根据人类解决一般问题的经验,如果一个问题由两个问题组合而成,那么它的复杂程度大于分别考虑每个问题时的复杂程度之和

18、,也就是说把复杂的问题分解成许多容易解决的小问题,原来的问题也就容易解决了。这就是模块化的根据。在模块划分时应遵循如下规则:改进软件结构提高模块独立性;模块规模应该适中;深度、宽度、扇出和扇入都应适当;模块的作用域应该在控制域之内;力争降低模块接口的复杂程度;设计单入口单出口的模块;模块功能应该可以预测。本着上述的启发式规则,对软件进行如图 3所示的模块划分。图 3数字均衡器的模块划分Figure 3 Module division如上图所以,将数字均衡器划分为三个模块:输入模块、滤波模块和图形显示模块。其中输入模块完成的功能是打开WAV格式文件,通过wavread这个函数读取音频文件,通过w

19、avplay这个函数播放音频文件。滤波模块实现的功能是滤波器的生成和实时图形显示模块则实现波形的实时显示和频谱的实时显示。通过matlab提供的GUIDE工具为可视化编程工具,将三个模块有机的结合,实现均衡器的预期功能。3软件实现3.1界面设计MATLAB是Mathworks公司推出的数学软件,它将数值分析、矩阵计算、信号处理和图形显示结合在一起,为众多学科领域提供了一种简洁、高效的编程工具。它提供的GUIDE工具为可视化编程工具,使得软件的界面设计像VB一样方便。故本文采用MATLAB作为主要编程语言实现数字均衡器。为了实现预期的功能,设计如图 4所示的界面。图 4频谱分析仪的界面设计Fig

20、ure4 Interface design左边最上面的部分为标题区,用于显示软件标题等信息,不具人机交互功能。再往下是文件输入,只支持WAV格式的音频文件。“原声播放”用于播放输入的原信频信号,区别于滤波后的信号,用于对比滤波前后的信号。再往下是均衡器区。八个滚动条对应八个带通滤波器的权值,在中间时为1,最下为0,最上为10。“滤波”后才能“播放”,这是考虑到MATLAB对多线程机制支持得不好,不宜使用一边滤波一边播放的方法。左下角是条形图,它是许多音频软件使用的频谱输出方式。右边的上面是滤波器,可以指定各种类型与参数。“类型”单选框用于选择低通、带通、高通滤波器。“生成滤波器”可以产生一个符

21、合条件的滤波器,并在下面的图中显示滤波器的频率特征曲线。“滤波”用于对输入的音频信号用生成的滤波器滤波。再往下则分别是时域波形与频谱分析的图形显示,均为实时显示。在界面设计时为避免错误的操作,在某些按钮不能使用时必须将其设置为不可用,而它们能够使用时立即设置为可用。例如,没有打开音频文件时“滤波”按钮不可用,打开后“滤波”按钮可用;点击“滤波”前,“播放”不可用,点击“滤波”并完成滤波后,“播放”则变为可用。3.2均衡器模块的实现均衡器模块功能是生成带通滤波器并对原信号滤波。为了便于程序的扩充与修改,将表 1中的频段数据独立出来,如下handles.fband=20 100 200 500 1

22、000 2000 4000 8000 16000;%频段划分均衡器的功能主要在“滤波”按钮的回调函数中实现,下面具体介绍开始需要得到滤波器的参数:频带与阶数,如下order=str2double(get(handles.order,String); %获得设定的阶数值num=8; %共计8段滤波fband=handles.fband; 接着就是产生滤波器并滤波了,每次滤波后产生的yi(n)如果都存到一个变量中,则需要8个这样的变量,对于输入信号量很大时将需要大量的内存空间,为此,本文采用累加的方式,这样只用一个变量去存储滤波结果。nn=length(handles.y);handles.yy=

23、zeros(size(handles.y);for i=1:num if get(handles.butterworth,Value)=1 %巴特沃斯滤波器 b a=butter(order,2*fband(i:i+1)/handles.Fs); elseif get(handles.cheby1,Value)=1 %切比雪夫1滤波器 b a=cheby1(order,0.5,2*fband(i:i+1)/handles.Fs); elseif get(handles.cheby2,Value)=1 %切比雪夫2滤波器 b a=cheby2(order,20,2*fband(i:i+1)/ha

24、ndles.Fs); elseif get(handles.ellip,Value)=1 %椭圆滤波器 b a=ellip(order,0.5,20,2*fband(i:i+1)/handles.Fs); else errordlg(No filter type chosen or filter type error!); end eval(sprintf(k=get(handles.band%d,Value);,i); y=(9k-1)/8*qfilter(b,a,handles.y); %滤波加权 handles.yy=handles.yy+y; %求和guidata(hObject,ha

25、ndles); %保存数据end在程序中有一句y=(9k-1)/8*qfilter(b,a,handles.y),作用是加权以便下一句的求和,其中k是从滚动条中得到的参数,从0到2,但需要的权值是从0到10,令w为需要的权,即,由于实际需要w为指数变化,故设 (7)代入w=0, k=0; w=1, k=1; w=10, k=2解得a=1/8,b=9,c=-1,从而有上述代码。3.3 Filter函数MATLAB控制系统工具箱提供了一个filter函数,可以计算差分方程描述的系统的响应,其调用形式为: y = filter(b,a,f) (8)其中,、分别是系统差分方程左、右端的系数向量,f表示

26、输入向量,y表示输出向量。输出序列的长度与输入序列的长度相同。但是其运行速度较慢,由于filter函数的执行速度是整个软件速度的瓶颈,故需要提高其速度。可以结合C+实现,以提高其速度,这里不再进一步研究。3.4 实时显示的实现软件的功能要求实时显示波形与频谱分析结果,这里采用分批处理的方法。即先取一批信号,将其播放出来,同时进行FFT,并绘出时域波形与频谱分析结果,然后取下一批信号由于各批信号间的时间间隔很小,从而感觉像连续播放,而时域波形与频谱则是实时地变化。该功能主要在“播放”按钮的回调函数中实现N=length(handles.yy); n=4096;step=n/handles.Fs;

27、from=1;to=n;ymax=max(handles.y);ymin=min(handles.y);f=linspace(0,handles.Fs/2,n/2);fband=handles.fband;num=length(fband)-1;ticwhile to=N; y=handles.yy(from:to,:); pause(step-toc*0.99); wavplay(y,handles.Fs,async); tic P=fft(y,n); Pyy =2*abs(P)/n; loglog(handles.axes1,f,Pyy(1:n/2); axis(handles.axes1

28、,fband(1) fband(num+1) 1e-3 ymax); plot(handles.axes2,y); ylim(handles.axes2,ymin ymax); from=from+n; to=to+n;end采用异步播放方式可以使得播放不占用主线程,从而使得播放效果不会很卡。为了使得播放流畅,需要与pause的使用结合,具体方法为用tic和toc计算出其它代码运行时间,然后用播放时间减去其它代码运行时间,从而得到需要暂停运行的时间。4运行实例与实验分析4.1运行实例图 5是程序的运行的一个实例,可以看到,基本上可以实现各个频段的均衡与调结。但是并不能完全滤掉某个频段的信号。

29、MATLAB的filter的运行时间为0.313秒,如图 6所示图 5 运行结果实例Figure5 Examples of the results图 6 MATLAB的filter的运行时间Figure6 MATLAB run-time of the filter 下面分别分析程序运行实例中选择不同滤波器类型,所给出的频谱反映的意思。如图7所示,滤波器类型为低通滤波器,其条形图和频谱图反映只允许低频通过,其高频基本都被滤去,故实现了低通滤波器的功能。 图 7 低通Figure7 lowpass 图8为选择带通滤波器时的运行界面,它的起始频率为200HZ,截止频率为400HZ,理想带通滤波器低于

30、200HZ和高于400HZ的频率段都应被滤去,实际运行过程中有一部分频段的频率未被滤去,但已基本实现带通滤波器的功能。图9为选择高通滤波器时的运行界面,它和低通刚好相反,只允许高频的通过。图 8 带通Figure 8 Band-pass图 9 高通Figure9 highpass4.2 实验分析理想的滤波器是不存在的,实际中只能尽量地接近理想滤波器,所以只能尽量地去接近理想的滤波器。对于IIR数字滤波器,阶数越高,则滤波器的精度越高,即越接近于理想的情况,但计算机运行速度就越慢了,所以实际中应该权衡运行速度与滤波器的精度。另外,计算机本身也有误差(如截断误差),但相对于滤波器的设计误差,计算机的计算误差可以怱略不计。故提高精度关键在于提高滤波器的设计精度。另外,每个带通滤波器之间的过渡也有设计误差,理论上带通滤波器间的过滤应该满足各滤波器的频率响应曲线叠加起来为一条值为1的水平线,但实际中只能尽量去接近理论的情况。5总结与展望5

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2