当前位置:首页 期刊杂志

IIR滤波器的分析及音频提取

时间:2024-09-03

西北民族大学电气工程学院 林竞连

语音信号是作为一种搭载着特定信息的模拟信号,已成为人们社会生活中获取和传播信息的重要手段。在信息处理技术中,滤波是最基本的信号处理方法,如何实现高性能的滤波技术成为最富有挑战性的任务。滤波器分数字滤波器和模拟滤波器。与模拟滤波器相比,数字滤波器在应用中具有精度高、稳定性好、设备体积小、使用灵活等优点,而且不需要匹配抗阻即可实现模拟滤波的特殊滤波功能。数字滤波器根据单位冲击响应的时间特性又分为IIR滤波器和FIR滤波器。与FIR滤波器相比,IIR滤波器是递归型结构,有体积小、重量轻、灵活等优点,并且设计出来的滤波器过渡带很窄,在很大程度上可以取代传统的模拟滤波器。因此,本文以IIR滤波器的音频提取为目标,利用MATLAB的相关函数实现滤波器的设计和对语音信号处理。

1 IIR滤波器的基本原理和结构

数字滤波器是一种对数字信号进行处理的重要工具,其对信号进行过滤、检测和参数估计等处理,目的就是消除数字信号中的噪声,让有价值的信号得以保留,其实际上就是一个离散系统。本文讨论了数字滤波器中的IIR滤波器,其设计的基本原理如下。

IIR滤波器是一种递归线性时不变因果系统,其差分方程为:

通过z变换之后,可得:

于是得到IIR数字滤波器的系统函数:

IIR滤波器的单位冲击响应h(n)是一个无限长序列,其基本的网络结构分为直接型、级联型和并联型三种,其中直接型又分为直接Ι型和直接Π型两种结构。

2 语音信号的采集和分析

2.1 语音信号的采集

语音信号是一种模拟信号,首先须经过采集将其转换为数字信号,实质就是把连续信号变为脉冲或数字序列。首先将需要滤波的混音音频传到电脑上,由于MATLAB只能处理后缀为“.wav”的语音文件,所以须将音频的后缀改为“.wav”,并保存;然后打开MATLAB软件,判断文件是否在MATLAB的索引区,如果不在,使用读取命令时就必须附加音频文件的地址。在命令行窗口中使用audioread命令采集保存的声音文件。该命令使用方法为:[x,Fs]=audioread(‘文件名’);%读取音频文件。

2.2 语音信号的分析

语音信号的分析主要是对语音信号的时域和频域进行分析,并利用IIR滤波器对混音音频中不同频率的声音进行提取。对比信号的时域,频域往往包含了更多的信息。信号的各种频域波形,我们都可以用一种方法来分析,那就是傅里叶变换:将时域的波形转化到频域来分析。

(1)时域分析

语音信号的时域分析就是对语音信号的时域参数进行分析和提取。语音信号本身就是时域信号,因此,时域分析是最早的分析方法,也是应用范围最广泛的分析方法之一。该方法直接利用语音信号的时域波形,通过分析可以有效的提高信噪比来求取信号波形在不同时刻的关联性。此方法表示的语音信号具有比较直观、物理意义明确、实现简单、计算量小等特点,能够获得信号的一些重要参数和指标。

在MATLAB中进行语音信号的时域分析的命令如下:

x = x(:,1);%双通道变单通道;

x = x’;

N = length(x);%求取抽样点数;

t = (0:N-1)/Fs;%显示实际时间

y = fft(x);%对信号进行傅里叶变换;

f = Fs/N*(0:round(N/2)-1);%显示实际频点的一半,频域映射,转化为Hz;

subplot(211);

plot(t,x,’g’);%绘制时域波形;

(2)频域分析

语音信号的频域分析是在频率域分析系统的结构参数与性能的关系,揭示了信号内在的频率特性以及信号时间特性与其频率特性之间的密切关系,从而导出信号的频谱、带宽以及滤波、调频和频分复用等重要概念。常用的频域分析方法有带通滤波器组法、线件预测法、傅里叶变换法等。本文中所用的是傅里叶变换法。

图1 模拟低通滤波器的技术指标

图2 巴特沃斯滤波器的幅频特性

在MATLAB中,想要得到信号的频谱特性,可以利用函数fft对信号进行快速傅里叶变换。该函数的调用格式是y=fft(x),其中,x是序列,y是序列的傅里叶变换。

3 设计IIR数字滤波器及对音频的提取

由于模拟滤波器的理论和设计方法已经非常成熟,有很多典型的模拟滤波器可供我们选择,如常见的经典模拟滤波器有巴特沃斯滤波器、切比雪夫Ι滤波器、切比雪夫Π滤波器、椭圆滤波器等。这些滤波器不仅有严格的设计公式、现成的曲线以及图表供设计人员使用,而且所设计的系统函数都满足电路实现条件。另外,低通滤波器是设计其他滤波器的基础,其设计过程是:首先设计模拟低通原型滤波器,将希望设计的各种滤波器的技术指标转换成低通滤波器技术指标,然后设计出这些技术指标所对应的低通滤波器,最后采用频率转换法将低通滤波器转换成我们原本想要设计的各种滤波器。模拟低通滤波器的技术指标如图1所示。

本文利用模拟滤波器成熟的理论及其设计方法来设计巴特沃斯低通滤波器和巴特沃斯高通滤波器,其设计过程是:首先根据数字滤波器的技术指标要求设计一个过渡的模拟低通滤波器Ha(s),然后根据一定的转换关系将Ha(s)转换成数字低通滤波器或数字高通滤波器的系统函数H(z)。巴特沃斯滤波的幅频特性如图2所示。

其设计方法如下:

(1)若要得到滤波器最小滤波器阶数和截止频率,可调用buttord函数,其调用格式如下:

‘wp’表示归一化通带边界频率,‘ws’表示归一化阻带边界频率,‘Rp’为通带最大衰减,‘Rs’为阻带最小衰减。返回的参数‘n’是滤波器的阶数,‘Wn’是3dB截止频率。对于带通和带阻滤波器,‘wp’和‘ws’都是二维向量,向量的第一个元素对应低端的边界频率,第二个元素对应高端的边界频率。

(2)须计算滤波器的系数,可调用butter函数,调用格式如下:

其中‘b’和‘a’就表示滤波器的系数,最后利用bilinear函数,用双线性变换法实现频率响应s域到z域的变换。

然后在MATLAB中用filter函数进行滤波,滤波后用plot函数分别画出原音频信号的频谱图和滤波之后的信号频谱图。最后,再将滤波后的音频通过函数audiowrite重新生成音频文件。

结论与展望:本文结合数字信号处理的知识讨论了数字滤波器中IIR滤波器的原理及其设计方法,并应用双线性变换法设计,用MATLAB设计巴特沃斯IIR滤波器,最后对混音音频进行滤波处理,将混音音频中不同音频的声音提取出来。

日常中的信号往往都混有噪音,从接收到的信号中消除或减少噪声是信号传输和处理中不可避免的问题。MATLAB是一个高级矩阵语言,其拥有强大的科学计算机数据处理能力。因此,将数字信号处理技术与MATLAB程序设计语言结合,能够促进数字信号处理技术的发展。

免责声明

我们致力于保护作者版权,注重分享,被刊用文章因无法核实真实出处,未能及时与作者取得联系,或有版权异议的,请联系管理员,我们会立即处理! 部分文章是来自各大过期杂志,内容仅供学习参考,不准确地方联系删除处理!