语音信号滤波去噪
—脉冲响应不变法设计的并联型切比雪夫I
型滤波器
学生姓名: 指导老师:
摘 要 本课程设计主要内容是使用脉冲响应不变法设计的并联型切比雪夫I型IIR滤波器,对一段含噪语音信号进行滤波去噪处理并根据滤波前后的波形和频谱分析滤波性能。本课程设计仿真平台为MATLAB7.0,开发工具是M语言编程。首先利用录音工具录制一段语音信号,并人为加入一单频噪声,然后对信号进行频谱分析以确定所加噪声频率,并设计滤波器进行滤波去噪处理,最后比较滤波前后的波形和频谱并进行分析。由分析结果可知,滤波器后的语音信号与原始信号基本一致,即设计的切比雪夫I型IIR滤波器能够去除信号中所加单频噪声,达到了设计目的。
关键词 滤波去噪;脉冲响应不变法;切比雪夫I型;IIR滤波器;MATLAB
1 引 言
本课程设计主要解决在含噪情况下对语音信号的滤波去噪处理,处理时采用的是利用脉冲响应不变法设计的切比雪夫I型IIR滤波器。
1.1 课程设计目的
(1)熟悉使用MATLAB语言来解决一些简单的课程问题。 (2)锻炼动手能力及独立思考并解决问题的能力
(3)增加对书本知识的理解以及掌握,如:IIR滤波器的工作原理,切比雪夫滤波器的设计,脉冲响应法的应用等等;
(4)对录制好的音频行加噪和过滤,比较前后语音变化;
1.2 课程设计内容
(1)使用录音软件;录制一段语音信号,要求为PCM编码格式 单声道8K 8位 7k/s的语音信号,绘制波形并观察频谱特点;
(2)加上噪声并绘制加噪信号波形及观察其频谱特点; (3)设计滤波器,绘制出滤波器的频谱并检验滤波器是否合格;
(4)最后使用设计好的滤波器对噪声信号进项过滤,绘制过滤后的波形及观察滤波前后频谱变化;
(5)绘制滤波器的并联型结构图;
2 设计原理
录制一段语音信号,绘制波形并观察其频谱,给定相应技术指标,用脉冲响应不变法设计的一个满足指标的切比雪夫I 型IIR滤波器,对该语音信号进行滤波去噪处理,比较滤波前后的波形和频谱并进行分析。
2.1 IIR滤波器
IIR滤波器具有无限长脉冲响应,一般来说,所有的模拟滤波器都有无限长脉冲响应。因此,IIR滤波器设计的基本方法是利用复值映射将大家熟知的模拟滤波器变换为数字滤波器。这种IIR滤波器设计的基本方法存在途径之一[2]如下: 设计模拟低通滤波器 实行频带变换 S → S 实行滤波器变换S→Z 期望的IIR滤波器
2.2 切比雪夫I型滤波器
切比雪夫I型滤波器是电子滤波器的一种。它的特点是在通带具有等波纹响应。其振幅平方函数如2-1式所示:
|Ha(j?)|2?1? (2-1)
1??T()?c22N
式中,N为整数,称为滤波器的阶,ε是通带波纹因子(它与Rp有关)。其中N阶切比雪夫多项式如2-2式所示:
??cos(Ncos?1(x)),0?x?1??TN(X)????1??cosh(cosh(x)),1?x????其中x?? ?c (2-2)
切比雪夫滤波器存在两种可能的幅度平方响应的形状,当N分别为基数和偶数时如图2-1所示:
图2-2 切比雪夫I型滤波器的幅度特性
2.3 脉冲响应不变法
脉冲响应不变法是一种将模拟滤波器转化为数字滤波器的基本方法。它通过对模拟滤波器的单位冲激响应h(t)等间隔抽样来获取对应数字滤波器的单位脉冲响应h[k],即h[k]=h(t)|t=kT =h(kT),其中T是等间隔抽样。
不失一般性地,假定连续时间滤波器的系统函数为:
Hc(s)?所对应的时域脉冲响应是:
?sk?1NAk?sk (2-3)
?Nsktt?0??Ake,hc(t)??k?1 (2-4)
?0,?t?0
对Tdhc(t)采样得到的离散时间滤波器的脉冲响应是:
h[n]?Tdhc(nTd)?sknTdTAe?dku[n]?k?1NskTdnTA(e?dk)u[n] (2-5) k?1N离散时间滤波器的系统函数为:
TdAkH(z)??skTd?1 (2-6)
zk?11?e
N3 设计步骤
语音信号滤波去噪——使用脉冲响应不变法设计的并联型切比雪夫IIR滤波器,设计流程如下图:
开始录制单声道8K WAV格式的语音信号绘制语音信号的波形图,分析频谱特点加入噪声并绘制波形图,分析噪声频谱变化使用脉冲响应不变法设计切比雪夫I型IIR滤波器;画出滤波器并联型结构图对噪声信号进行过滤,画出滤波后频谱图,分析滤波前后频谱变化回放语音信号结束 图3-1 步骤图
3.1 录制语音信号
利用录音软件(如下图3-2)录制PCM编码格式 单声道8K 8位 7k/s的语音信号,语音内容不限;
图3-2 录制语音信号软件界面
3.2 绘制语音信号波形图
使用MATLAB软件,将语音信号放到MATLAB的工作目录中;使用 [x,fs.bits]=wavread(‘ldd.wav’)函数读入语音信号; 源程序如下:
[x,fs,bits]=wavread('ldd.wav'); % 输入参数为文件的全路径和文件名,输出的第一个参数是每个样本的值,fs是生成该波形文件时的采样率,bits是波形文件每样本的编码位数。
sound(x,fs,bits); % 按指定的采样率和每样本编码位数回放 N=length(x); % 计算信号x的长度
t=0:1/fs:(N-1)/fs; % 计算时间范围,样本数除以采样频率 x=x'; X=abs(fft(x)); % 对原始信号和加噪信号进行fft变换,取幅度谱 X=X(1:N/2); % 截取前半部分