-
语音信号滤波去噪
——基于三角窗的
FIR
滤波器
学生姓名:
指导老师:
摘
要
课程设
计主要内容是设计利用窗口设计法选择三角窗设计一个
FIR
滤
波器,
对
一段含噪语音信号进行滤波去噪处理并根据滤波前后的
波形和频谱分析滤波性能。
本课
程设计仿真平台为
MATLAB7.0
,开发工具是
M
语言编程。首先利用系统自带的录音机
工具录制一段语音信号,并人为加入一单
频噪声,然后对信号进行频谱分析以确定所加
噪声频率,并设计滤波器进行滤波去噪处理
,最后比较滤波前后的波形和频谱并进行分
析。由分析结果可知,滤波器后的语音信号与
原始信号基本一致,即设计的
FIR
滤波器
能够去除信号中所加单频噪声,达到了设计目的。
关键词
滤
波去噪;
FIR
滤波器;三角窗;
MA
TLAB
1
引
言
本课程设计主要解决在含噪情况下
对语音信号的滤波去噪处理,处理时采用的是
利用窗口设计法选择三角窗设计的
FIR
滤波器。
1.1
课程设计目的
设计一个
FIR
滤波器,
可
以有多种方法,
窗函数法是设计
FIR
数字滤波器的最简单
的方法。
它在设计
FIR
数字滤波器中有很重要的作用,
正确地选择窗函数可以提
高设计
数字滤波器的性能,或者在满足设计要求的情况下,减小
FIR
数字滤波器的阶次。常用
的窗函数有以下几种:
矩形窗
(Rectangular window)
、
三角窗
(Triangular window)
、
汉宁窗
(Hanning
window)
、汉明窗
(Hamming
window)
、布拉克曼窗
(Blackman
window)
等等。
在本次课程设
计的目的是通过用麦克风采集一段语音信号,
绘制波形并观察其频谱
特点,加入一个带外单频噪声,用三角窗设计一个满足指标的
FIR
滤波器,对该含噪语
音信号进行滤波去噪处理,从而
达到对双音频信号滤波去噪的效果。比较滤波前后的波
形和频谱并进行分析,根据结果和
学过的理论得出合理的结论。与不同信源相同滤波方
法的同学比较各种信源的特点,
p>
与相同信源不同滤波方法的同学比较各种滤波方法性能
的优劣。
p>
1.2
课程设计的要求
(
1
)滤波器指标必须符合工程实际。
(
2
)设计完后应检查其
频率响应曲线是否满足指标。
(
3<
/p>
)处理结果和分析结论应该一致,而且应符合理论。
(
4
)独立完成课程设计并按要求编写课程设计报
告书。
1.3
设计平台
MATLAB
是矩阵实验室(
Matrix Labora
tory
)的简称,是美国
MathWorks
公司出品的
商业数学软件,用于算法开发、数据可视化、数据分析以及数值计算
的高级技术计算语
言和交互式环境,主要包括
MATLAB
p>
和
Simulink
两大部分。
MATLAB
是由美国
mathworks
公司发布的主要面对科学计算、
可视化以及
交互式程序
设计的高科技计算环境。它将数值分析、矩阵计算、科学数据可视化以及非线
性动态系
统的建模和仿真等诸多强大功能集成在一个易于使用的视窗环境中,为科学研究
、工程
设计以及必须进行有效数值计算的众多科学领域提供了一种全面的解决方案,
p>
并在很大
程度上摆脱了传统非交互式程序设计语言
< br>
(如
C
、
< br>Fortran
)
的编辑模式
,代表了当
今国际科学计算软件的先进水平。
MATLAB
p>
和
Mathematica
、
Maple
并称为三大数学软
件。它在数学类科技应用软件中在数值计算方面首屈一指。
MATLA
B
可以进行矩阵运算、
绘制函数和数据、实现算法、创建用户界
面、连接其他编程语言的程序等,主要应用于
工程计算、控制设计、信号处理与通讯、图
像处理、信号检测、金融建模设计与分析等
领域。
[1]
2
设计原理
2.1
FIR
滤波器
FIR(Finite
Impulse Response)
滤波器又叫有限长单位冲激响应滤波器,是数字信
号处
理系统中最基本的元件,它可以在保证任意幅频特性的同时具有严格的线性相频特性
,
同时其单位抽样响应是有限长的,
因而滤波器是稳定的系统。
因此,
FIR
滤波器在通信、
图像处理、模式识别等领域都有着广泛的应用。
目前,
FIR
滤波器的硬件实现有三种方式:数字集成电路<
/p>
FIR
滤波器、可编程
FIR
滤波器和
DSP
芯片
FI
R
滤波器。
数字集成电路
FIR
滤波器是使用单片通用数字滤波器集
成电路,
这种电路使用简单,
但是由于字长和阶数的规格较少,
不易完全
满足实际需要。
虽然可采用多片扩展来满足要求,但会增加体积和功耗,因而在实际应用
中受到限制。
DSP
芯片
FIR
滤波器是使用
DSP
芯片。
< br>DSP
芯片有专用的数字信号处理函数可调用,实
现
p>
FIR
滤波器相对简单,但是由于程序顺序执行,速度受到限制。而
且,就是同一公司
的不同系统的
DSP
芯片,其编程指令也会有所不同,开发周期较长。可编程
FIR
滤波器
是使用可编程逻辑器件,
FPGA/CPLD
。
FPGA
有着规整的内部逻辑块整列和丰富的连
线资
源,特别适合用于细粒度和高并行度结构的
FIR
滤波器的实现,相对于串行运算主导的
通用
DS
P
芯片来说,并行性和可扩展性都更好。
有限长单位冲激响应(
FIR
)滤波器有以下特点:
(1)
系统的单位冲激响应
h (n)
在有限
个
n
值处不为零
(2)
系统函数
H(z)
在
|z|>0
处收敛,极点全部在
z = 0
处(因果系统)
(3)
结构上主要是非递归结构,没有输出到输入的反馈,但有些结构中(例如频率抽样
结构)
也包含有反馈的递归部分。
<
/p>
设
FIR
滤波器的单位冲激响应
h (n)
为一个
N
点
序列,
0
≤
n
≤
N
—
1<
/p>
,则滤波器的系
统函数为
:
H(z)=
∑
h(n)*
z^-n
。
[2]
FIR
数字滤波器设计的基本步骤如下:
(
1
)确定技术指标
在设计一个滤波器之前,必须首先根据工程实际的需要确定滤
波器的技术指标。在
很多实际应用中,数字滤波器常被用来实现选频操作。因此,指标的
形式一般在频域中
给出幅度和相位响应。幅度指标主要以
2
p>
种方式给出。第一种是绝对指标。他提供对幅
度响应函数的要求,一般应用于
FIR
滤波器的设计。第二
种指标是相对指标。他以分贝
值的形式给出要求。本文中滤波器的设计就以线性相位
p>
FIR
滤波器的设计为例。
(
2
)逼近
确定了技术指标后,就可以建立一个目标的数字滤波器模型(
通常采用理想的数字
滤波器模型)
。之后,利用数字滤波器的设
计方法(窗函数法、频率采样法等)
,设计出
一个实际滤波器模
型来逼近给定的目标。
(
3
)性能分析和计算机仿真
上两步的结果是得到以差分或系统函数或冲激响应描述的滤波
器。
根据这个描述就
可以分析其频率特性和相位特性,以验证设
计结果是否满足指标要求。
2.2
窗口设计法
< br>FIR
滤波器的设计方法有许多种,如窗函数设计法、频率采样设计法和最优化设
计
法等。
窗函数设计法的基本原理是用一定宽度窗函数截取无限
脉冲响应序列获得有限长
的脉冲响应序列。
< br>窗口法的优点是简单,有闭合的公式可用,性能及参数都有表格资料可查,计算程
序简单,
较为实用。
缺点是当
Hd(e
j
ω
)
较为复杂时,
< br>hd(n)
就不容易由反付里叶变换求得。
边界频率因为
加窗的影响而不易控制。
主要设计步骤为:
(
1
p>
)通过傅里叶逆变换获得理想滤波器的单位脉冲响应
hd(n)
p>
。
h
d
(
n
)
?
1
2
?
?
< br>?
?
x
?
x
e
jwn
dw
?
sin[
w
c
< br>(
n
?
?
)]
(2-1)
?
(
n
?
?
)
(
2
)由性能指标确定窗函数
W(n)
和窗口长度
N
。
(
3
)求得实际滤波器的单位脉冲
响应
h(n)
,
h(n)
即为所设计
FIR
滤波器
系数向量
b(n)
。
d
(
n
?
)
W
(
n
h
(
p>
n
)
?
h
)
(2-2)
(
4
)检验滤波器性能
其中要注意的是窗口法设计
FIR
滤波器时,窗口的长度对滤波器的过渡带宽产生
影响:窗口的长度越长,滤波器的过渡带越窄、越陡。
窗口的
形状对滤波器的最小阻带衰耗和过渡带宽都产生影响:最小阻带衰耗
取决于窗谱主副瓣面
积之比;过渡带宽取决于窗谱主瓣宽度。另外,窗口形状必须是对
称的,才可用以设计线性相位
FIR
滤波器。
[3]
2.3
三角窗
在实际进行数字信号处理时,
往往需要把信号的观察时间限制在一定的时间间隔
内,只需要选择一段时间信号对其进行
分析。这样,取用有限个数据,即将信号数据截
断的过程,就等于将信号进行加窗函数操
作。而这样操作以后,常常会发生频谱分量从
其正常频谱扩展开来的现象,即所谓的“频
谱泄漏”
。当进行离散傅立叶变换时,时域
中的截断是必需的,
因此泄漏效应也是离散傅立叶变换所固有的,必须进行抑制。而要
对频谱泄漏进行抑制,
可以通过窗函数加权抑制
DFT
的等效滤波器的振幅特性的副瓣
,
或用窗函数加权使有限长度的输入信号周期延拓后在边界上尽量减少不连续程度的方<
/p>
法实现。而在后面的
FIR
滤波器的设计
中,为获得有限长单位取样响应,需要用窗函数
截断无限长单位取样响应序列。可见,窗
函数加权技术在数字信号处理中的重要地位。
下面介绍窗函数
的基本概念。设
x
(
n
)
是一个长序列,
w
(
n
)
是长度为
N
p>
的窗函数,用
w
(
n
)
截断
x
(
n
)
,得到
N
点序列
x
n
(
n
)
,即
<
/p>
x
n
(
n
) =
x
(
n
p>
)
w
(
n
)
(2-3)
在频域上则有
X
N
e
j
?
?
?
?
< br>1
π
X
e
j
?
?
W
e
j
?
?
?
p>
?
?
d
?
(2-4)
?
2
π
?
π
?
?
?
?
由此可见,窗函数
w
(
n
)
< br>不仅仅会影响原信号
x
(
n
p>
)
在时域上的波形,而且也会影响到
频域内
的形状。
三角窗的滤波器过渡带宽为
3.6
π
/M
,最小阻带衰减为
40db
。
在
p>
MATLAB
中调用
TRIANG
函数:生成三角窗。
调用方式
w_barth=triang (M);
:产生一长度为
M
的三角窗。
[4]
3
设计步骤
3.1
设计流程图
双音频信号滤波去噪——使用三角窗设计的
FIR
滤波
器的设计流程图如图
3.1
所
示:
p>
开始
双音频信号的采集
在
MA
TLAB
集
成
环
境
下
用
wavread
函数将语音信号录入,
并对语音信号加入噪声,
画出语音
信号加噪声前后的
时域和频域波
形图并进行比较。
设定
带阻滤波器的性能指标,下通带
fpd=2900;
下
阻带
fsd=2950;
上阻带
fsu=3050;
上通带
fpu=3100;
通带波纹
Rp=1;
阻带波纹
As=100
三角窗设计
FIR
滤波器
验证并进行频谱分析
用设计好的滤波器进行滤波处理
回放语音信号
结束
图
3.1
使用
BARTHANNWIN
窗设计的
FIR
滤波器对双音频信号去噪流程图
3.2
录制语音信号
录制语音信号的方法有
很多,其中专用软件如
REAPER
、
Medieval CUE Splitter
、
以及
cool edit pro
2.1
等,
而
cool edit
pro 2.1
就有许多人使用,
它是一个非常出色的数字
p>
音乐编辑器和
MP3
制作软件。不少人把<
/p>
Cool Edit
形容为音频“绘画”程序。你可以用
声音来“绘”制:音调、歌曲的一部分、声音、弦乐、颤音、噪音或是调整静音。而且
它还提供有多种特效为你的作品增色:放大、降低噪音、压缩、扩展、回声、失真、延
迟等。你可以同时处理多个文件,轻松地在几个文件中进行剪切、粘贴、合并、重叠声
音操作。使用它可以生成的声音有:噪音、低音、静音、电话信号等。该软件还包含有
< br>CD
播放器。其他功能包括:支持可选的插件;崩溃恢复;支持多文件;自动静音
检测
和删除;
自动节拍查找;
录制等。
另外,
它还可以在
AIF
、
AU
、
MP3
、
Raw PCM
、
SA
M
、
VOC
、
VOX
、
WA
V
等文件格式之间进行转换,并且能够保存为
RealAudio
格式
!
如果觉
得这些格式都不能满足
需求的话,可以将
cooledit
和格式工厂配合使用,可以
保证格式
的问题得到解决。一款强大的多音轨录制和音频编辑软件
,提供了灵活且易用的界面,
对音频爱好者和专业人士同样
适合。
REAPE
它是一款免费的音
频录制和编辑软件,
并支持
DirectX/VST
、
plug-ins
和
A
SIO
驱动,
VSTi
乐器等。现在最
新版本为
4.12
,支持
window
s64
位,和苹果系统。
Medieval CUE Splitter
是一个免费的音
轨切割工具,
可以支持
WA
VE
、
MP3
、
FLAC
、
APE
、
O
GG
、
WMA
、
MPC
、
WV
和
TTA
等格式的文件。它使用方便,可以根据文件情
况选择
合适的切割方式,可以对作者和标题信息进行编辑。
但是,为
了简化录制,我利用了
Windows
下的录音机,录制语音信
号“大家好,我
是王麟”
,
时间在
p>
2-3 s
左右。
然后在
< br>Matlab
软件平台下,
利用函数
wavread
对语音信号
进行采样,记住采样频率和采样
点数。通过
wavread
函数的使用,学生很快理解了采样<
/p>
频率、采样位数等概念。
采集完成后在
信号中加入一个单频噪声,设计的任务即为从
含噪信号中滤除单频噪声,还原原始信号。
源代码如下:
[x,fs,bits]=wavread('');
sound(x,fs,bits);
N=length(x);
%
计算信号
x
的长度
fn=3000;
t=0:1/fs:(N-1)/fs;
%
计算时间范围,样本数除以采样频率
x=x(:,1);
-
-
-
-
-
-
-
-
-
上一篇:定量磁共振技术(MRI) - e学e用-医疗培训
下一篇:01 船用设备分类表