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

上传人:文库蛋蛋多 文档编号:3944264 上传时间:2023-03-28 格式:DOC 页数:29 大小:443.50KB
返回 下载 相关 举报
数字音频均衡器设计毕业论文.doc_第1页
第1页 / 共29页
数字音频均衡器设计毕业论文.doc_第2页
第2页 / 共29页
数字音频均衡器设计毕业论文.doc_第3页
第3页 / 共29页
数字音频均衡器设计毕业论文.doc_第4页
第4页 / 共29页
数字音频均衡器设计毕业论文.doc_第5页
第5页 / 共29页
点击查看更多>>
资源描述

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

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

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 的应用范围非常广,包括信号和图像处理、通讯、控制系统设计、测试和测量、财务建模和分析以及计算生物学等众多应用领域。附加的工具箱(单独提供的专用 MATLAB 函数集)扩展了 MATLAB 环境,以解决这些应用领域内特

3、定类型的问题。通过Matlab强大的信号仿真功能,分析数字音频均衡器的设计要求,对各种数字音频信号进行滤波处理,设计出一种比较合理的数字均衡器,最后对该数字均衡器进行综合测试并改进,使其达到要求的指标。 关键词:均衡器;MATLAB;数字滤波器;ABSTRACTMATLAB is very wide range of applications, including signal and image processing, communications, control system design, test and measurement, financial modeling and ana

4、lysis, 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 simulation capabilities, a kind of reasonable d

5、igital 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 equalizer. Key words: Equalizer;MATLAB;Digita

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

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

8、滤波,包括生成低通、高通、带通滤波器并显示滤波器的频率特征曲线;(4)播放,播放滤后音频信号并实时显示波形及频谱特性。3060Hz沉闷如没有相当大的响度,人耳很难感觉。60100Hz沉重80Hz附近能产生极强的“重感”效果,响度很高也不会给人舒服的感觉,可给人以强烈的刺激作用。100200Hz丰满200500Hz力度易引起嗡嗡声的烦闷心理。5001KHz明朗800Hz附近如提升10dB,会明显产生一种嘈杂感,狭窄感。1K2KHz透亮2800Kz附近明亮感关系最大。2K4Kz尖锐3400Hz易引起听觉疲劳。4K8Kz清脆6800Hz形成尖啸,锐利的感觉。8K16Kz纤细7.5KHz音感清彻纤细。

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

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

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

12、一定性能指标的各个数字滤波器,构成一个覆盖整个音频频段的滤波器组。2.2数字滤波器2.2.1数字滤波器的原理简介数字滤波器的功能是把输入序列通过一定的运算,变换成输出序列。数字滤波器一般可用两种方法实现:一种是根据描述数字滤波器的数学模型或信号流程图,用数字硬件构成专用的数字信号处理机,即硬件方式;另一种是编写滤波器运算程序,在计算机上运行,即软件方式。考虑到软件的灵活性及易于实现,本文采用软件方式实现数字滤波器。数字滤波器有无限冲激响应(IIR)和有限冲激响应(FIR)两种。下面分别介绍:(1) IIR滤波器IIR滤波器的特点是:单位冲激响应h(n)是无限长的;系统函数H(z)在有限长Z平面

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

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

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

16、带通滤波器;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所示的模块划分。数字均衡器输入模块滤波模块图形显示模块WAV文件打开滤波器生成实时滤 波实时波形显 示实时频谱 显 示图 3数字均衡器的模块划分Figure 3 Module division如上图所以,将数字均衡器划分为三个模块:输入模块、滤波模块和图形显示模块。其中输入模块完成的功能是打开WAV格式文件,通过wavread这个函数读

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

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

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

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

23、dles.yy=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

24、:i+1)/handles.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(hO

25、bject,handles); %保存数据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)其中,、分别是系统差分方程左、右端的

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

27、dles.Fs;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(handl

28、es.axes1,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数字滤波器,阶数越高,则滤波器的精度越高,即越接近于理想的情况,但计算机运行速度就越慢了,所以实际中应该权衡运行速度与滤波器的精度。另外,计算机本身也有误差(如截断误差),但相对于滤波器的

31、设计误差,计算机的计算误差可以怱略不计。故提高精度关键在于提高滤波器的设计精度。另外,每个带通滤波器之间的过渡也有设计误差,理论上带通滤波器间的过滤应该满足各滤波器的频率响应曲线叠加起来为一条值为1的水平线,但实际中只能尽量去接近理论的情况。5总结与展望5.1总结本文首先对数字滤波器的原理进行了分析,并选择了一种实现数字均衡器的方案,在软件的设计上采用软件工程的理论,使用面向数据流的设计方法进行软件设计,并且采用了模块划分的方法。采用MATLAB实现,利用了MATLAB的强大工具箱。界面上采用MATLAB提供的GUIDE工具进行设计,使得软件开发效率较高。对于均衡器所要求的功能,已经基本实现。

32、最后给出了软件的运行结果,并对软件进行了误差分析。5.2展望该软件在播放前需要点滤波按钮,这使得操作变得麻烦,所以可以将滤波功能加到播放中,这就意味着需要加快程序的运行速度可采用多线程机制。带通滤波器频率交界处的误差可以通过优化设计的方法来将其减小,即各带通滤波器不完全以给定的频带为自己的生成参数,而是以附近的某个频率值作为其生成参数,这样就需要用到优化的理论。参考文献1谢卫华,张泽. 一种数字均衡器的设计及DSP实现.M .北京:清华大学出版社.,2006.2蒋伟峰,刘济林,王兴国. 基于原型法的数字参量均衡器设计M. 浙江:浙江大学出版社,2004.3姚天任,江太辉. 数字信号处理.M 武

33、汉:华中科技大学出版社.2008.4张海藩. 软件工程.J 北京:人民邮电出版社, 2002.5王正林;王玲 精通MATLAB GUI设计.M 电子工业出版社.2008.3. 6胡昌华基于MATLAB的系统分析与设计M西安:电子科技大学出版社。2001.7孙祥MATLAB7.0从入门到精通M北京:人民邮电出版社。2007.8D.G.CHILDERSMATLAB语音处理及合成M北京:清华大学出版社。2006.9刘敏,魏玲Matlab通信仿真与应用M北京:国防工业出版社,200110程佩青数字信号处理教程M北京:清华大学出版社,2002致 谢经过五个月的忙碌和工作,本次毕业设计已经接近尾声,作为一

34、个本科生的毕业设计,由于经验的匮乏,难免有许多考虑不周全的地方,如果没有赵老师的督促指导,想要完成这个设计是难以想象的。 在这里首先要感谢我的指导老师赵红伟老师。老师平日里工作繁多,但在我做毕业设计的每个阶段,从查阅资料,到设计草案的确定和修改,中期检查,后期详细设计等整个过程中都给予了我细心的指导,老师治学严谨和科学研究的精神也是我永远学习的榜样,并将积极影响我今后的学习和工作。同时还要感谢大学四年来所有的老师,为我们打下电信专业知识的基础;也还要感谢所有的同学们,正是因为有了你们的支持和鼓励。此次毕业设计才会顺利完成。 最后感谢基信学院和我的母校云南农业大学四年来对我的教导与栽培。附录%

35、- 打开WAV按钮.filename, pathname = uigetfile(*.wav, Pick an WAVE-file);%生成打开文件对话框if isequal(filename,0) disp(User selected Cancel)else disp(User selected, fullfile(pathname, filename)%文件名和路径 handles.y handles.Fs bits=wavread(filename);%读取WAV格式的声音文件 handles.y=handles.y(:,1);% handles.y是采样数据 guidata(hObje

36、ct,handles);%保存数据end% -原声播放按钮 wavplay(handles.y,handles.Fs,async);%播放WAV文件% - 播放按钮.N=size(handles.yy);N=N(1);% step=0.1;% n=handles.Fs*step;n=4096; %N是离散傅氏变换用的点数step=n/handles.Fs; % fs是采样速率(Hz)。 from=1;to=n;ymax=max(handles.y);ymin=min(handles.y);f=linspace(0,handles.Fs/2,n/2);fband=handles.fband;nu

37、m=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,fband(1) fband(num+1) 1e-3 ymax); for i=1:num yb(i)=60+20*log10(mean(Pyy(floor(fband(i)*n/handl

38、es.Fs):floor(fband(i+1)*n/handles.Fs); end bar(handles.axes3,yb); ylim(handles.axes3,0 60); plot(handles.axes2,y); ylim(handles.axes2,ymin ymax); from=from+n; to=to+n;endset(handles.filterplay,Enable,on);、% -设置滑动条的属性usewhitebg = 1;if usewhitebg set(hObject,BackgroundColor,.9 .9 .9);else set(hObject,

39、BackgroundColor,get(0,defaultUicontrolBackgroundColor);endif ispc set(hObject,BackgroundColor,white);else set(hObject,BackgroundColor,get(0,defaultUicontrolBackgroundColor);end% - 滤波按钮function filt_Callback(hObject, eventdata, handles)set(handles.filt,Enable,off);set(handles.filterplay,Enable,off);p

40、ause(0.01);order=str2double(get(handles.order,String);num=8;%8 filters totallyfband=handles.fband;fband=min(fband;(handles.Fs/2).*ones(1,num+1);nn=length(handles.y);handles.yy=zeros(size(handles.y);pause(0.01);for i=1:num if get(handles.butterworth,Value)=1 b a=butter(order,2*fband(i:i+1)/handles.Fs

41、); elseif get(handles.cheby1,Value)=1 b a=cheby1(order,0.5,2*fband(i:i+1)/handles.Fs); elseif get(handles.cheby2,Value)=1 b a=cheby2(order,20,2*fband(i:i+1)/handles.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; pause(0.01);endguidata(hObject,handles);set(handles.filt,Enable,on);set(handles.filterplay,Enable,on);set(handles.filt,Enable,on);set(handles.save,Enable,on);

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

当前位置:首页 > 办公文档 > 其他范文


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号