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

• 67
语音信号是作为一种搭载着特定信息的模拟信号,已成为人们社会生活中获取和传播信息的重要手段。在信息处理技术中,滤波是最基本的信号处理方法,如何实现高性能的滤波技术成为最富有挑战性的任务。滤波器分数字滤波器和模拟滤波器。与模拟滤波器相比,数字滤波器在应用中具有精度高、稳定性好、设备体积小、使用灵活等优点,而且不需要匹配抗阻即可实现模拟滤波的特殊滤波功能。数字滤波器根据单位冲击响应的时间特性又分为IIR滤波器和FIR滤波器。与FIR滤波器相比,IIR滤波器是递归型结构,有体积小、重量轻、灵活等优点,并且设计出来的滤波器过渡带很窄,在很大程度上可以取代传统的模拟滤波器。因此,本文以IIR 滤波器的音频提取为目标,利用MATLAB的相关函数实现滤波器的设计和对语音信号处理。
1  IIR滤波器的基本原理和结构
数字滤波器是一种对数字信号进行处理的重要工具,其对信号进行过滤、检测和参数估计等处理,目的就是消除数字信号中的噪声,让有价值的信号得以保留,其实际上就是一个离散系统。本文讨论了数字滤波器中的IIR滤波器,其设计的基本原理如下。
IIR滤波器是一种递归线性时不变因果系统,其差分方程为:
(1)
通过z变换之后,可得:
(2)
于是得到IIR数字滤波器的系统函数:
(3)
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)频域分析
语音信号的频域分析是在频率域分析系统的结构参数与性能的关系,揭示了信号内在的频率特性以及信号时间特性与其频率特性之间的密切关系,从而导出信号的频谱、带宽以及滤波、调频和频分复用等重要概念。常用的频域分析方法有带通滤波器组法、线件预测法、傅里叶变换法等。本文中所用的是傅里叶变换法。
IIR滤波器的分析及音频提取西北民族大学电气工程学院  林竞连
• 68
在MATLAB 中,想要得到信号的频谱特性,可以利用函数fft 对信号进行快速傅里叶变换。该函数的调用格式是y =fft (x ),其中,x 是序列,y 是序列的傅里叶变换。
3  设计IIR数字滤波器及对音频的提取
由于模拟滤波器的理论和设计方法已经非常成熟,有很多典型的模拟滤波器可供我们选择,如常见的经典模拟滤波器有巴特沃斯滤波器、切比雪夫Ι滤波器、切比雪夫Π滤波器、椭圆滤波器等。这些滤波器不仅有严格的设计公式、现成的曲线以及图表供设计人员使用,而且所设计的系统函数都满足电路实现条件。另外,低通滤波器是设计其他滤波器的基础,其设计过程是:首先设计模拟低通原型滤波器,将希望设计的各种滤波器的技术指标转换成低通滤波器技术指标,然后设计出这些技术指标所对应的低通滤波器,最后采用频率转换法将低通滤波器转换成我们原本想要设计的各种滤波器。模拟低通滤波器的技术指标如图1所示。
本文利用模拟滤波器成熟的理论及其设计方法来设计巴特沃
斯低通滤波器和巴特沃斯高通滤波器,其设计过程是:首先根据数字滤波器的技术指标要求设计一个过渡的模拟低通滤波器H a (s ),然后根据一定的转换关系将H a (s )转换成数字低通滤波器或数字高通滤波器的系统函数H (z )。巴特沃斯滤波的幅频特性如图2所示。
其设计方法如下:
(1)若要得到滤波器最小滤波器阶数和截止频率,可调用buttord 函数,其调用格式如下:
[n,Wn]=buttord(wp,ws,Rp,Rs,’s ’);‘w p ’表示归一化通带边界频率,‘ws ’表示归一化阻带边界频率,‘R
p ’为通带最大衰减,‘Rs ’为阻带最小衰减。返回的参数‘n ’是滤波器的阶数,‘Wn ’是3dB 截止频率。对于带通和带阻滤波器,‘wp ’和‘ws ’都是二维向量,向量的第一个元素对应低端的边界频率,第二个元素对应高端的边界频率。
(2)须计算滤波器的系数,可调用butter 函数,调用格式如下:
[b,a]=butter(n,Wn,’s ’);
其中‘b ’和‘a ’就表示滤波器的系数,最后利用bilinear 函数,用双线性变换法实现
频率响应s 域到z
域的变换。
图1 模拟低通滤波器的技术指标
图2 巴特沃斯滤波器的幅频特性
然后在MATLAB 中用filter 函数进行滤波,滤波后用plot 函数分别画出原音频信号的频谱图和滤波之后的信号频谱图。最后,再将滤波后的音频通过函数audiowrite 重新生成音频文件。
结论与展望:本文结合数字信号处理的知识讨论了数字滤波
器中IIR 滤波器的原理及其设计方法,并应用双线性变换法设计,用MATLAB 设计巴特沃斯IIR 滤波器,最后对混音音频进行滤波处理,将混音音频中不同音频的声音提取出来。
日常中的信号往往都混有噪音,从接收到的信号中消除或减少噪声是信号传输和处理中不可避免的问题。MATLAB 是一个高级矩阵语言,其拥有强大的科学计算机数据处理能力。因此,将数字信号处理技术与MATLAB 程序设计语言结合,能够促进数字信号处理技术的发展。
作者简介:林竞连(2000—),女,重庆人,大学本科在读,现就读于西北民族大学电子信息工程专业。

本文发布于:2024-09-23 12:32:49,感谢您对本站的认可!

本文链接:https://www.17tex.com/tex/3/96008.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

标签:信号   设计   滤波   数字   分析
留言与评论(共有 0 条评论)
   
验证码:
Copyright ©2019-2024 Comsenz Inc.Powered by © 易纺专利技术学习网 豫ICP备2022007602号 豫公网安备41160202000603 站长QQ:729038198 关于我们 投诉建议