数字音频均衡器设计毕业论文.doc

上传人:李主任 文档编号:3316801 上传时间:2019-08-11 格式:DOC 页数:30 大小:511KB
返回 下载 相关 举报
数字音频均衡器设计毕业论文.doc_第1页
第1页 / 共30页
数字音频均衡器设计毕业论文.doc_第2页
第2页 / 共30页
数字音频均衡器设计毕业论文.doc_第3页
第3页 / 共30页
数字音频均衡器设计毕业论文.doc_第4页
第4页 / 共30页
数字音频均衡器设计毕业论文.doc_第5页
第5页 / 共30页
点击查看更多>>
资源描述

《数字音频均衡器设计毕业论文.doc》由会员分享,可在线阅读,更多相关《数字音频均衡器设计毕业论文.doc(30页珍藏版)》请在三一文库上搜索。

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

2、波器6 2.2.1 数字滤波器的原理简介6 2.2.2 FIR 与 IIR 滤波器的比较与选择7 2.2.3 IIR 数字滤波器的设计方法7 2.3 均衡器的原理7 2.4 软件设计 8 2.4.1 数据流图8 2.4.2 模块划分9 3 软件实现10 3.1 界面设计10 3.2 均衡器模块的实现11 3.3 Filter 函数12 3.4 实时显示的实现 12 4 运行实例与实验分析14 4.1 运行实例14 4.2 实验分析 17 5总结与展望17 5.1 总结17 5.2 展望17 参考文献18 致 谢19 附录20 1 摘摘 要要 MATLAB 的应用范围非常广,包括信号和图像处理、

3、通讯、控制系统设计、 测试和测量、财务建模和分析以及计算生物学等众多应用领域。附加的工具箱(单独 提供的专用 MATLAB 函数集)扩展了 MATLAB 环境,以解决这些应用领域内特 定类型的问题。通过 Matlab 强大的信号仿真功能,分析数字音频均衡器的设计要求,对 各种数字音频信号进行滤波处理,设计出一种比较合理的数字均衡器,最后对该数字均 衡器进行综合测试并改进,使其达到要求的指标。 关键词关键词:均衡器;MATLAB;数字滤波器; 2 ABSTRACT MATLAB is very wide range of applications, including signal and im

4、age processing, communications, control system design, test and 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 wi

5、thin a specific type of problem.Through a strong signal simulation 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 a

6、fter the integrated test and improvement for this digital equalizer. Key words: Equalizer;MATLAB;Digital filter; 3 1 前言 随着数字化技术的快速、深入发展,人们对数字化电子产品所产生的图像、图形以 及声音等质量的要求越来越高。在声音的拾取过程及通过音响设备的传送过程中,由于 设备或器件的原因,其幅度对频率的响应往往不一致,这样就达不到原来的听觉效果, 音频均衡器是音响设备中常用的一种音效处理技术,目的是对某一频段内的信号进行增 强或衰减,以改善音响设备输出的频响特性,提高听觉效果

7、。一个好的均衡器能起到以 下几个方面的作用:(1) 能校正音频设备所产生的频率失真;(2) 校正由于建筑学共振性 的不均匀所带来的传输增益的频率失真;(3) 调整某些易反馈的频率成分,抑制声反馈, 提高会场增益;(4) 在艺术创作中,利用它来刻画演员和乐器的音色修改,提高艺术效 果。现有的许多播放器都具有均衡器的功能,如千千静听(如图 1 所示)等。通过调节均 衡器可以得到最佳音乐状态。 图图 1 1 千千静听的均衡器千千静听的均衡器 Figure 1 the equalizer of TT player MATLAB 是一个数据分析和处理功能十分强大的工程实用软件,它的滤波器设计 工具箱为实

8、现声音信号的数字滤波提供了十分方便的函数和命令,本文将给出基于 MATLAB 的数字均衡器(图示均衡器)的设计方法,功能包括: (1)WAV 声音信号获取,即从文件(*.wav)读取音频信息; (2)八段数字均衡器设定,具体按照表 1 中的频段,其中前两个频段合并在一起; (3)滤波,包括生成低通、高通、带通滤波器并显示滤波器的频率特征曲线; 4 (4)播放,播放滤后音频信号并实时显示波形及频谱特性。 3060Hz沉闷如没有相当大的响度,人耳很难感觉。 60100H z 沉重80Hz 附近能产生极强的“重感”效果,响度很高也不会给人 舒服的感觉,可给人以强烈的刺激作用。 100200 Hz 丰

9、满 200500 Hz 力度易引起嗡嗡声的烦闷心理。 5001KH z 明朗800Hz 附近如提升 10dB,会明显产生一种嘈杂感,狭窄感。 1K2KH z 透亮2800Kz 附近明亮感关系最大。 2K4Kz尖锐3400Hz 易引起听觉疲劳。 4K8Kz清脆6800Hz 形成尖啸,锐利的感觉。 8K16Kz纤细7.5KHz 音感清彻纤细。 表表 1 1 频率的音感特征频率的音感特征 Table 1 Frequency characteristics of sound sense 由此可见 150Hz 以下(低音)应是丰满、柔和而富有弹性; 150Hz-500Hz(中 低音)应是浑厚有力百不混浊

10、; 500Hz-5KHz(中高音)应是明亮透彻而不生硬; 5KHz 以上(高音)应是纤细, 圆顺而不尖锐刺耳。 整个频响特性平直时:声音自然丰满而有弹性,层次清晰圆顺悦耳。频响多峰 谷时:声音粗糙混浊,高音刺耳发毛,无层次感扩声易发生反馈啸叫。 5 2 设计原理 2.1 均衡器分类 2.1.1均衡器分类 均衡器分为三类:图示均衡器,参量均衡器和房间均衡器。 1图示均衡器:亦称图表均衡器,通过面板上推拉键的分布,可直观地反映出 所调出的均衡补偿曲线,各个频率的提升和衰减情况一目了然,它采用恒定 Q 值技术, 每个频点设有一个滑动条,无论提升或衰减某频率,滤波器的频带宽始终不变。常用的 专业图示均

11、衡器则是将 20Hz20kHz 的信号分成 8 段、10 段、15 段、27 段、31 段来进 行调节。这样人们根据不同的要求分别选择不同段数的频率均衡器。一般来说 10 段均 衡器的频率点以倍频程间隔分布,15 段均衡器是 2/3 倍频程均衡器,31 段均衡器是 1/3 倍频程均衡器,在比较重要的需要精细补偿的场合下,图示均衡器结构简单,直观明了, 故在专业音响中应用非常广泛。 2参量均衡器:亦称参数均衡器,对均衡调节的各种参数都可细致调节的均衡器, 多附设在调音台上,但也有独立的参量均衡器,调节的参数内容包括频段、频点、增益 和品质因数 Q 值等,可以美化(包括丑化)和修饰声音,使声音(或

12、音乐)风格更加鲜 明突出,丰富多彩达到所需要的艺术效果。 3房间均衡器,用于调整房间内的频率响应特性曲线的均衡器,由于装饰材料对 不同频率的吸收(或反射)量不同以及简正共振的影响造成声染色,所以必须用房间均 衡器对由于建声方面的频率缺陷加以客观地补偿调节。 频段分得越细,调节的峰越尖锐,即 Q 值(品质因数)越高,调节时补偿得越细 致,频段分的越粗则调节的峰就比较宽,当声场传输频率特性曲线比较复杂时较难补偿。 2.1.2 图示均衡器的实现关键 此设计的实现关键是设计出满足一定性能指标的各个数字滤波器,构成一个覆盖 整个音频频段的滤波器组。 6 2.2 数字滤波器 2.2.1 数字滤波器的原理简

13、介 数字滤波器的功能是把输入序列通过一定的运算,变换成输出序列。数字滤波器一 般可用两种方法实现:一种是根据描述数字滤波器的数学模型或信号流程图,用数字硬 件构成专用的数字信号处理机,即硬件方式;另一种是编写滤波器运算程序,在计算机 上运行,即软件方式。考虑到软件的灵活性及易于实现,本文采用软件方式实现数字滤 波器。 数字滤波器有无限冲激响应(IIR)和有限冲激响应(FIR)两种。下面分别介绍: (1) IIR 滤波器 IIR 滤波器的特点是:单位冲激响应 h(n)是无限长的;系统函数 H(z)在有限长 Z 平面(00 处收敛,极点全部在 z=0 处(即 FIR 一定为稳定系统);结构上主要是

14、非递归结构, 没有输出到输入反馈。但有些结构中也包含有反馈的递归部分。其系统函数的一般形式 为 (3) 对应的差分方程为 (4) 7 FIR 系统的基本结构有直接型、级联型、快速卷积型、频率取样型等。 2.2.2 FIR 与 IIR 滤波器的比较与选择 IIR 滤波器可以用比 FIR 滤波器少的阶数来满足相同的技术指标,这样,IIR 滤波器 所用的存储单元和所用的运算次数都比 FIR 滤波器少。FIR 滤波器可得到严格的相位, 而 IIR 滤波器不能得到。事实上,IIR 滤波器的选频特性越好,它的相位的非线性就越 严重。因此在需要严格线性相位的情况下应该选择 FIR 滤波器。IIR 滤波器可利

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

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

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

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

19、组合而成,那么它的复杂程度大于分别考虑 每个问题时的复杂程度之和,也就是说把复杂的问题分解成许多容易解决的小问题,原 来的问题也就容易解决了。这就是模块化的根据。 在模块划分时应遵循如下规则:改进软件结构提高模块独立性;模块规模应该适中; 深度、宽度、扇出和扇入都应适当;模块的作用域应该在控制域之内;力争降低模块接 口的复杂程度;设计单入口单出口的模块;模块功能应该可以预测。 本着上述的启发式规则,对软件进行如图 3 所示的模块划分。 10 数字均衡器 输入模块滤波模块图形显示模块 WAV 文件 打开 滤波 器生 成 实时 滤 波 实时 波形 显 示 实时 频谱 显 示 图图 3 3 数字均衡

20、器的模块划分数字均衡器的模块划分 Figure 3 Module division 如上图所以,将数字均衡器划分为三个模块:输入模块、滤波模块和图形显示模块。 其中输入模块完成的功能是打开 WAV 格式文件,通过 wavread 这个函数读取音频文件, 通过 wavplay 这个函数播放音频文件。滤波模块实现的功能是滤波器的生成和实时 图形显示模块则实现波形的实时显示和频谱的实时显示。 通过 matlab 提供的 GUIDE 工具为可视化编程工具,将三个模块有机的结合,实现 均衡器的预期功能。 3 软件实现 3.1 界面设计 MATLAB 是 Mathworks 公司推出的数学软件,它将数值分

21、析、矩阵计算、信号处 理和图形显示结合在一起,为众多学科领域提供了一种简洁、高效的编程工具。它提供 的 GUIDE 工具为可视化编程工具,使得软件的界面设计像 VB 一样方便。故本文采用 MATLAB 作为主要编程语言实现数字均衡器。 为了实现预期的功能,设计如图 4 所示的界面。 11 图图 4 4 频谱分析仪的界面设计频谱分析仪的界面设计 Figure4 Interface design 左边最上面的部分为标题区,用于显示软件标题等信息,不具人机交互功能。 再往下是文件输入,只支持 WAV 格式的音频文件。 “原声播放”用于播放输入的 原信频信号,区别于滤波后的信号,用于对比滤波前后的信号

22、。 再往下是均衡器区。八个滚动条对应八个带通滤波器的权值,在中间时为 1,最下 为 0,最上为 10。 “滤波”后才能“播放” ,这是考虑到 MATLAB 对多线程机制支持得 不好,不宜使用一边滤波一边播放的方法。左下角是条形图,它是许多音频软件使用的 频谱输出方式。右边的上面是滤波器,可以指定各种类型与参数。 “类型”单选框用于 选择低通、带通、高通滤波器。 “生成滤波器”可以产生一个符合条件的滤波器,并在 下面的图中显示滤波器的频率特征曲线。 “滤波”用于对输入的音频信号用生成的滤波 器滤波。 再往下则分别是时域波形与频谱分析的图形显示,均为实时显示。 在界面设计时为避免错误的操作,在某些

23、按钮不能使用时必须将其设置为不可用, 而它们能够使用时立即设置为可用。例如,没有打开音频文件时“滤波”按钮不可用, 12 打开后“滤波”按钮可用;点击“滤波”前, “播放”不可用,点击“滤波”并完成滤 波后, “播放”则变为可用。 3.2 均衡器模块的实现 均衡器模块功能是生成带通滤波器并对原信号滤波。为了便于程序的扩充与修改, 将表 1 中的频段数据独立出来,如下 handles.fband=20 100 200 500 1000 2000 4000 8000 16000;%频段划分 均衡器的功能主要在“滤波”按钮的回调函数中实现,下面具体介绍 开始需要得到滤波器的参数:频带与阶数,如下 o

24、rder=str2double(get(handles.order,String); %获得设定的阶数值 num=8; %共计 8 段滤波 fband=handles.fband; 接着就是产生滤波器并滤波了,每次滤波后产生的 yi(n)如果都存到一个变量中,则 需要 8 个这样的变量,对于输入信号量很大时将需要大量的内存空间,为此,本文采用 累加的方式,这样只用一个变量去存储滤波结果。 nn=length(handles.y); handles.yy=zeros(size(handles.y); for i=1:num if get(handles.butterworth,Value)=1

25、%巴特沃斯滤波器 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)/handles.Fs); elseif get(handles.ellip,Value)=1 %椭圆滤波器 b a=ellip(orde

26、r,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); %滤波加权 13 handles.yy=handles.yy+y; %求和 guidata(hObject,handles); %保存数据 end 在程序中有一句 y=(9k-1)/8*qfilter(b,a,handles.y),作用

27、是加权以便下一句的求和, 其中 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 表示输入向量,y 表示输出向量。输出序列的长度与输入序列的长度相同。但

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

29、ymax=max(handles.y); ymin=min(handles.y); f=linspace(0,handles.Fs/2,n/2); fband=handles.fband; num=length(fband)-1; tic while to1 W1=2*W1/handles.Fs; end if W21 W2=2*W2/handles.Fs; end if get(handles.lowpass,Value)=1 switch get(handles.filtertype,Value) case 1 b a=butter(order,W1,low); case 2 b a=ch

30、eby1(order,0.5,W1,low); 26 case 3 b a=cheby2(order,20,W1,low); case 4 b a=ellip(order,0.5,20,W1,low); otherwise errordlg(Filter type chosen error!Butterworth?cheby?.); return; end elseif get(handles.highpass,Value)=1 switch get(handles.filtertype,Value) case 1 b a=butter(order,W1,high); case 2 b a=c

31、heby1(order,0.5,W1,high); case 3 b a=cheby2(order,20,W1,high); case 4 b a=ellip(order,0.5,20,W1,high); otherwise errordlg(Filter type chosen error!Butterworth?cheby?.); return; end elseif get(handles.bandpass,Value)=1 switch get(handles.filtertype,Value) case 1 b a=butter(order,W1 W2); case 2 b a=ch

32、eby1(order,0.5,W1 W2); case 3 b a=cheby2(order,20,W1 W2); 27 case 4 b a=ellip(order,0.5,20,W1 W2); otherwise errordlg(Filter type chosen error!Butterworth?cheby?.); return; end elseif get(handles.bandstop,Value)=1 switch get(handles.filtertype,Value) case 1 b a=butter(order,W1 W2,bandstop); case 2 b

33、 a=cheby1(order,0.5,W1 W2,bandstop); case 3 b a=cheby2(order,20,W1 W2,bandstop); case 4 b a=ellip(order,0.5,20,W1 W2,bandstop); otherwise errordlg(Filter type chosen error!Butterworth?cheby?.); return; end else errordlg(Filter type chosen error!lowpass,highpass,bandpass or bandstop?); return; end H

34、f=freqz(b,a,512,2); plot(handles.axes4,f,abs(H); handles.b=b; handles.a=a; guidata(hObject,handles); set(handles.filt2,Enable,on); 28 % -滤波按钮 set(handles.filt2,Enable,off); tic if get(handles.matlab,Value)=1 handles.yy=filter(handles.b,handles.a,handles.y); end set(handles.ellipstime,String,sprintf(%fs,toc); guidata(hObject,handles); set(handles.filt2,Enable,on); set(handles.filterplay,Enable,on); set(handles.save,Enable,on);

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 建筑/环境 > 装饰装潢


经营许可证编号:宁ICP备18001539号-1