基于MATLAB的数字滤波器和均衡器设计

2020-02-20 15:17

基于MATLAB的简易声音信号频谱分析仪设计

摘 要

通过MATLAB强大的信号处理功能,先设计了几个理想滤波器,通过对理想滤波器的滤波特性分析对比,可以更直观得认识滤波器的功能。利用滤波器原理,结合数字均衡器的设计要求,对各种数字音频信号进行滤波处理,设计出一种可调节参数的数字滤波器,即一种均衡器。本文的数字均衡器以MATLAB为设计平台,有.wav文件的获取、滤波、保存和播放控制功能。在对声音文件进行频率分析的基础上,用10段均衡器可对声音信号进行调节后保存播放。 关键字:MATLAB,滤波器,均衡器,傅里叶反变换

1 概述

随着数字化技术的快速、深入发展,人们对数字化电子产品所产生的图像、图形以及声音等质量的要求越来越高。在实时数字处理过程中,往往需要对目标信号进行滤波处理,以满足用户对信号的要求。MATLAB 是一个数据分析和处理功能十分强大的工程实用软件,它的滤波器设计工具箱为实现声音信号的数字滤波提供了十分方便的函数和命令。本文将介绍基于MATLAB设计出的一种实用的数字滤波器,并对其功能进行扩展,设计出一种均衡器。

2 设计原理

滤波器的种类很多,按所通过信号的频段分为低通、高通、带通和带阻滤波器四种。低通滤波器:它允许信号中的低频或直流分量通过,抑制高频分量或干扰和噪声。高通滤波器:它允许信号中的高频分量通过,抑制低频或直流分量。带通滤波器:它允许一定频段的信号通过,抑制低于或高于该频段的信号、干扰和噪声。带阻滤波器:它抑制一定频段内的信号,允许该频段以外的信号通过。

上述每种滤波器又可以分为模拟滤波器和数字滤波器。如果滤波器的输入输出都是数字信号,则这样的滤波器称之为数字滤波器。根据数字滤波器冲激响应的时域特性,可将数字滤波器分为两种,即无限长冲激响应(IIR)滤波器和有限长冲激响应(FIR)滤波器。 2.1 滤波器设计原理

滤波器就是对系统的输入信号进行滤波。输入x(n)和输出y(n)之间的关系是脉冲响应h(n),即

y(n)?x(n)*h(n) (2-1)

如果滤波器的输入输出都为离散信号,那么该滤波器的脉冲响应也应该是离散信号,这样滤波器就成为了数字滤波器。

上面的系统为时域离散系统时,其频域特性为 Y(ej?)?X(ej?)H(ej?)

(2-2)

其中Y(ej?)、X(ej?)分别是数字滤波器的输出序列和输入序列的频域特性,H(ej?)是数字滤波器的频域响应。可以看出,输入序列的

频谱X(ej?)经过滤波后变成了X(ej?)H(ej?);因此按照输入信号频谱的特点和处理信号的目的适当选择H(ej?),使得滤波后的X(ej?)H(ej?)满足设计性能要求。

在MATLAB中主要有Filter函数、Filtfilt函数等滤波函数。Filter函数滤波器的标准差分方程为

a(1)y(n)?b(1)x(n)?b(2)x(n?1)?...?b(nb?1)x(n?nb)

?a(2)y(n?1)?...?a(na?1)y(n?nb) (2-3) 如果a(1)不为1,那么滤波器的系数将用a(1)进行归一化处理,即各系数同除以a(1)。 2.2 均衡器设计原理

10段滤波器能够对以下几个频率段进行滤波,各段的音感特征如下所示:30~60Hz(沉闷);60~100Hz(沉重);100~200Hz(丰满);200~500Hz(力度);500~1KHz(明朗);1K~2KHz(透亮);2K~4Kz(尖锐);4K~8Kz(清脆);8K~16Kz(纤细)。通过对各频段的滤波特性设置即可调出不同的音效。

打开音频文件后,先对原理声音信号进行傅里叶变换处理,然后从滚动条上获得各频段的滤波特性值,通过换算得到增益值,并构造滤波器频域特性响应,即可得到该频率范围的滤波器。使用该构造的滤波器对输入的原始声音信号进行频域滤波,并通过傅里叶反变换将滤波后的频域信号转化成的时域波形信号。然后,再播放该滤波后的声音信号,即可发现声音的音质效果发生了改变。这就是均衡器的基本工作原理。

3 MATLAB程序设计

3.1 模块设计

该MATLAB程序的模块设计如下图所示。

数字滤波器与均衡器输入模块滤波模块图形显示模块信号发生器产生wav文件导入理想滤波器均衡器波形分析显示频谱分析显示低通高通带通带阻

图1 模块设计图

3.2 图形界面设计

首先打开MATLAB,在命令窗口中输入guide命令进入GUI图形设计界面。再新建一个空白的图形界面文件,添加如下的控件并设计它们的布局。

(1) 添加5个axes控件,用于显示时域波形图和频域频谱图; (2) 添加4个static text控件,用于窗口及其他控件的说明

使用;

(3) 添加6个panel控件,将一组相关的控件框在一起; (4) 添加1个edit控件,用于输入频率参数值;

(5) 添加2个pop-up menu控件,用于选择信号发生器产生的

信号类型和均衡器参数配置;

(6) 添加4个radiobutton,用于选择滤波器类型;

(7) 添加11个slider控件,用于设置均衡器参数和音量大小; (8) 添加11个push button控件,其中6个用于控制音频文件

播放,2个用于打开和保存文件,其余3个用于控制均衡器设置。

双击各个控件,打开其属性编辑窗,即可修改其名称、颜色、大小、初始值及位置等属性。最终编辑好的界面如下图所示:

3.3 MATLAB编程

当界面控件及布局创建完成以后,点击运行即可自动生成包含各控件回调函数在内的m文件。MATLAB对于输入框、按钮及滑动条等控件的响应都是通过自动调用相应的回调函数来实现的。

回调函数即在一定的操作下自动执行的指令代码。本次数字滤波器及均衡器的设计主要功能有数字信号发生器,信号频谱分析显示,


基于MATLAB的数字滤波器和均衡器设计.doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:国内外微课研究现状

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: