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

加入VIP,免费下载
 

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

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

下载须知

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

版权提示 | 免责声明

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

基于matlab数字均衡器设计.docx

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

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

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

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

5、的特点。而图像信号处理和数据传输等以波形携带信息的系统,对相位的线性要求较高,因此采用 FIR 滤波器较好。对于数字均衡器,一方面是用于处理语言信号,另一方面需要用到频率特性分段的带通滤波器,因此应该 IIR 滤波器。下面介绍 IIR 滤波器的设计方法。2.1.3 IIR 数字滤波器的设计方法实际中的数字滤波器都是用有限精度算法实现的线性非移变离散系统,设计 IIR 数字滤波器的方法主要有两种:一种是利用模拟滤波器的理论来设计,另一种是计算机辅助设计,即使用最优化技术设计。利用模拟滤波器的设计理论来设计 IIR 滤波器,就是首先根据实际要求设计一个模拟滤波器,然后再将这个模拟滤波器转换成数字滤

6、波器。由于模拟网络综合理论已经发展得很成熟,故许多常用的模拟滤波器不仅有了简单而严格的设计分式,而且设计参数已经表格化,所以设计起来很方便。因此本文采用第一种方法。设计步骤大致分以下三步:(1) 设计模拟滤波器。根据实际需要确定滤波器的参数,利用的滤波器的设计公式设计出模拟滤波器并得到其传递函数 H(s),常用的滤波器有巴特沃斯滤波器、椭圆滤波器和切比雪夫滤波器;(2) 将模拟滤波器转换成数字滤波器。利用冲激响应不变法或双线性变法将H(s)转换成 H(z),不同的设计方法对应于不同的 s 平面到 z 平面的映射公式;(3) 频率变换。上述方法得到的是低通滤波器,为了得到高通、带通、带阻滤波器,

7、还需要用利用变换公式作频率变换。以上各步骤都有成熟的理论与公式,具体可参看文献3。2.2 均衡器的原理2.2.1 均衡器总体设计均衡器的基本功能是调节各频段的信号强弱,为了满足该功能,本文采用如下的方法:Step1:设计出对应八个频段的八个带通滤波器;Step2:对原始信号分八路用八个带通滤波器进行滤波;Step3:将八个滤波器的滤波结果加权求和,权值的设计与均衡器的调节要求一致。这样最终得到的结果便是所需要的均衡结果。其中第 2 步中各带通滤波器的输入信号均为原始信号,而不是“串联”地滤波。设原始输入信号为 x(n),第 i 路的输出信号为 ,第 i 路的权值为 ,均衡器的输出信号为 y(n

8、),则有(5)(6)式中, 、 为滤波器的参数,可由 2.1.3 节的方法得到,N 为滤波器的阶数。具体应用中,式(6)有两个问题,下节将介绍这两个问题并给出解决方法。2.2.2 滤波计算的两个问题(1) 数组越界问题即当 n1)yi=1;else if(yi1)yi=1;else if(yi-1)yi=-1;(3) 保存为 qfilter.cpp,放在 MATLAB 工作目录,在 MATLAB 中运行 mex qfilter.cpp 生成 qfilter.dll。这样,只需调用 qfilter 函数即能实现滤波。3.4 实时显示的实现软件的功能要求实时显示波形与频谱分析结果,这里采用分批处理

9、的方法。即先取一批信号,将其播放出来,同时进行 FFT,并绘出时域波形与频谱分析结果,然后取下一批信号由于各批信号间的时间间隔很小,从而感觉像连续播放,而时域波形与频谱则是实时地变化。该功能主要在“播放”按钮的回调函数中实现N=length(handles.yy);n=4096;step=n/handles.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=han

10、dles.yy(from:to,:);pause(step-toc*0.99);wavplay(y,handles.Fs,async);ticP=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);plot(handles.axes2,y);ylim(handles.axes2,ymin ymax);from=from+n;to=to+n;end采用异步播放方式可以使得播放不占用主线程,从而使得播放效果不会很卡。为了使得播放流

11、畅,需要与 pause 的使用结合,具体方法为用 tic 和 toc 计算出其它代码运行时间,然后用播放时间减去其它代码运行时间,从而得到需要暂停运行的时间。4运行实例与误差分析4.1 运行实例图 5 是程序的运行的一个实例,可以看到,基本上可以实现各个频段的均衡与调结。但是并不能完全滤掉某个频段的信号。另外,为了比较 MATLAB 的 filter 函数与 VC 写的 qfilter 的执行速度,软件中提供了选择滤波程序的界面,图 5 中的运行结果为 qfilter 的运行时间,为0.031 秒,而相同情况下,MATLAB 的 filter 的运行时间为 0.157 秒,如图 6 所示。从而

12、混合编程的方式大大提高了软件的运行效率。所以在均衡器功能上直接采用 qfilter。4.2 误差分析理想的滤波器是不存在的,实际中只能尽量地接近理想滤波器,所以只能尽量地去接近理想的滤波器。对于 IIR 数字滤波器,阶数越高,则滤波器的精度越高,即越接近于理想的情况,但计算机运行速度就越慢了,所以实际中应该权衡运行速度与滤波器的精度。另外,计算机本身也有误差(如截断误差),但相对于滤波器的设计误差,计算机的计算误差可以怱略不计。故提高精度关键在于提高滤波器的设计精度。图 5 运行结果实例图 6 MATLAB 的 filter 的运行时间另外,每个带通滤波器之间的过渡也有设计误差,理论上带通滤波

13、器间的过滤应该满足各滤波器的频率响应曲线叠加起来为一条值为 1 的水平线,但实际中只能尽量去接近理论的情况。5总结与展望5.1 总结本文首先对数字滤波器的原理进行了分析,并选择了一种实现数字均衡器的方案,在软件的设计上采用软件工程的理论,使用面向数据流的设计方法进行软件设计,并且采用了模块划分的方法。在实现的时候采用 MATLAB 与 VC混合编程的方式,这样不仅利用了 MATLAB 的强大工具箱,而且使得开发的软件有着运行速度快的特点。界面上采用 MATLAB 提供的 GUIDE 工具进行设计,使得软件开发效率较高。对于均衡器所要求的功能,已经全部实现,但限于篇幅,本文只给出了部分功能的实现方法。最后给出了软件的运行结果,并对软件进行了误差分析。5.2 展望该软件在播放前需要点滤波按钮,这使得操作变得麻烦,所以可以将滤波功能加到播放中,这就意味着需要加快程序的运行速度可者采用多线程机制。带通滤波器频率交界处的误差可以通过优化设计的方法来将其减小,即各带通滤波器不完全以给定的频带为自己的生成参数,而是以附近的某个频率值作为其生成参数,这样就需要用到优化的理论。其实可以将软件的主体用 VC 进行开发,部分难以实现但运行次数不多的函数则借用 MATLAB,实现以 VC 的主体的混合编程,这样可以实现多线程,并且运行速度会进一步加快,但这种开发方式的开发时间相对较长。

本站链接:文库   一言   我酷   合作


客服QQ:2549714901微博号:道客多多官方知乎号:道客多多

经营许可证编号: 粤ICP备2021046453号世界地图

道客多多©版权所有2020-2025营业执照举报