语音信号滤波去噪 下载本文

内容发布更新时间 : 2024/12/27 12:33:49星期一 下面是文章的全部内容请认真阅读。

沈阳航空航天大学综合课程设计

一、概述

本次课程设计的主要内容是利用窗口设计法设计频率采样型FIR滤波器并对加噪语音信号进行滤波去噪处理。仿真平台为MATLAB7.7。在课程设计中,首先利用Windows下的录音机工具录制一段格式为.wav的语音信号,然后在MATLAB中对语音信号进行加噪,并绘制原始语音信号和加噪语音信号的时域和频域波形,进行频谱分析以确定所加噪声频率,再利用BOHMAN窗设计FIR滤波器,并检测是否达到指标,最后使用滤波器对信号进行滤波去噪处理,并通过对比原始信号,加噪信号,滤波去噪信号的时域和频域波形,或回放语音信号,检测是否设计成功。通过程序调试及完善,本课程设计滤波后的语音信号与原始语音信号基本一致,即设计的滤波器能够从含噪信号中滤除单频噪声,还原原始信号,达到了设计目的。

FIR滤波器相对于IIR滤波器具有易实现线性相位,系统总是稳定的,允许设计多通带(或多阻带)滤波器的优点,FIR滤波器主要有4种结构,直接型,级联型,线性相位型,频率采样型,与IIR结构相比,结构是相对简单的。FIR系统滤波器的缺点在于它的性能不如同样阶数的IIR滤波器,不过由于数字计算硬件的飞速发展,这一点已经不成为问题。再加上引入计算机辅助设计,FIR滤波器的设计也得到极大的简化。 FIR滤波器的设计方法有多种,如窗口设计法,频率采样法,最优等波纹设计法等。随着MATLAB软件尤其是MATLAB的信号处理箱工具的不断完善,不仅数字滤波器的计算机辅助设计有了可能,而且还可以使设计达到最优化。

二、设计目的

熟悉Matlab语言环境,掌握Matlab语言的编程规则,熟悉Matlab工具软件的运用,学会用计算机采集语音信号,以及对语音信号进行时域和频域的分析;利用BOHMAN窗函数设计法来设计符合要求的FIR滤波器来实现语音信号的滤波去噪。并绘制滤波前后的时域波形和频谱图。根据图形分析判断滤波器设计的正确性。通过本次课程设计熟悉利用BOHMAN窗函数法设计FIR滤波器的过程。增强自己独立解决问题的能力,提高自己的动手能力。加深对理论知识联系实际问题的理解。为以后的工作奠定坚实的基础。

三、设计步骤

3.1 设计流程图

语音信号滤波去噪——使用BOHMAN窗设计的频率采样型FIR滤波器的设计流程图如图1所示。

开始 图 1 使用BOHMAN窗设计的频率采样型FIR滤波器的设计流程图

从以上流程图可知本次课程设的步骤为:首先录制一段格式为.wav的语音信号,然后在

1 录制一段格式为.wav的语音信号 沈阳航空航天大学综合课程设计

MATLAB中对语音信号加入噪声,并绘制原始语音信号和加噪语音信号的时域和频域波形图,进行频谱分析以确定所加噪声频率,再利用BOHMAN窗设计FIR滤波器,并检测是否达到指标,最后使用滤波器对信号进行滤波去噪处理,并通过对比原始信号,加噪信号,滤波去噪信号的时域和频域波形,或回放语音信号,检测是否设计成功。经过程序调试及完善,本课程设计滤波后的语音信号应该与原始语音信号基本一致,即设计的滤波器能够从含噪信号中滤除单频噪声,还原出原始的语音信号。 3.2 语音信号采集

通过点击计算机的开始/程序/附件/娱乐/录音机,打开Windows下的录音机工具,录制一段语音。如图2所示,将文件保存然后在Matlab软件平台下,利用函数wavread对语音信号进行采样,记录采样频率和采样点数。采集完成后在信号中加入一个频率为3700Hz的单频噪声。

图2 录音机

开始将单频噪声fn设置为1000Hz,绘制出加噪前后语音信号的时域和频域波形后,发现语言信号的有效带宽从0Hz~2000Hz左右噪声处于语音信号的有效频带范围内,要滤除噪声就要设置一个带阻滤波器,带阻滤波器相对于低通滤波器来说较为复杂,经过多次调试后,将fn设置为3700Hz,所以本课程设计中滤波器设置为低通滤波器。

对原始语音信号加噪的程序如下:

[x,fs,bits]=wavread('G:\\yu1.wav'); % 输入参数为文件的全路径和文件名,输出的第一个参数是每个样本的值,fs是生成该波形文件时的采样率,bits是波形文件每样本的编码位数。 sound(x,fs,bits); % 按指定的采样率和每样本编码位数回放 N=length(x); % 计算信号x的长度 fn=3700; % 单频噪声频率,此参数可改

t=0:1/fs:(N-1)/fs; % 计算时间范围,样本数除以采样频率 x=x(:,1)'; % 将双声道转为单声道 y=x+0.1*sin(fn*2*pi*t); % 加噪声

sound(y,fs,bits); % 应该可以明显听出有尖锐的单频啸叫声 fs % 输出采样频率

以上程序完成了对原始的语音信号加噪,然后再对语音信号进行快速傅里叶变换,得到信号的频谱特性,对应的程序如下:

X=abs(fft(x)); Y=abs(fft(y)); % 对原始信号和加噪信号进行fft变换,取幅度谱 X=X(1:N/2); Y=Y(1:N/2); % 截取前半部分 deltaf=fs/N; % 计算频谱的谱线间隔 f=0:deltaf:fs/2-deltaf; % 计算频谱频率范围 magX=abs(X);magY=abs(Y);

subplot(2,2,1);plot(t,x);axis([0 6 -0.5 0.5]);

xlabel('时间(单位: s)');ylabel('幅度');title('原始语音信号');grid on;

2

沈阳航空航天大学综合课程设计

subplot(2,2,2);plot(f,magX);axis([0 4000 0 150]);

xlabel('频率(单位: Hz)');ylabel('幅度谱');title('语音信号幅度谱图');grid on; subplot(2,2,3);plot(t,y);axis([0 6 -0.5 0.5]);

xlabel('时间(单位: s)');ylabel('幅度');title('加入单频干扰后的语音信号');grid on; subplot(2,2,4);plot(f,magY);axis([0 4000 0 150]);

xlabel('频率(单位: Hz)');ylabel('幅度谱');title('加入干扰后的语音信号幅度谱图');grid on; figure;

图3 加噪前后语音信号的时域和频域波形

加噪前后语音信号的时域和频域波形如图3所示,可以从图中明显观察到,在时域波形图中,加噪后的语音信号明显被噪声遮盖了许多,在频域图中,在频率为3700Hz处,有一个尖脉冲,也就是噪声。 3.3 滤波器的设计

FIR(Finite Impulse Response)滤波器:有限长单位冲激响应滤波器,是数字信号处理系统中最基本的元件,它可以在保证任意幅频特性的同时具有严格的线性相频特性,同时其单位抽样响应是有限长的,因而滤波器是稳定的系统。因此,FIR滤波器在通信、图像处理、模式识别等领域都有着广泛的应用。

FIR滤波器相对于IIR滤波器具有易实现线性相位,系统总是稳定的,允许设计多通带(或多阻带)滤波器的优点,FIR滤波器主要有4种结构,直接型,级联型,线性相位型,频率采样型,与IIR结构相比,结构是相对简单的。FIR系统滤波器的缺点在于它的性能不如同样阶数的IIR滤波器,不过由于数字计算硬件的飞速发展,这一点已经不成为问题。再加上引入计算机辅助设计,FIR滤波器的设计也得到极大的简化。FIR滤波器的设计方法有多种,如窗口设计法,频率采样法,最优等波纹设计法等。随着MATLAB软件尤其是MATLAB的信号处理箱工具的不断完善,不仅数字滤波器的计算机辅助设计有了可能,而且还可以使设计达到最优化。

有限长单位冲激响应(FIR)滤波器有以下特点: (1) 系统的单位冲激响应h (n)在有限个n值处不为零

(2) 系统函数H(z)在|z|>0处收敛,极点全部在z = 0处(因果系统)

(3) 结构上主要是非递归结构,没有输出到输入的反馈,但有些结构中(例如频率抽样结构)也包含有反馈的递归部分。

设FIR滤波器的单位冲激响应h (n)为一个N点序列,0 ≤ n ≤N —1,则滤波器的系统函数为

H?z???h(n)*Z?n (1)

就是说,它有(N—1)阶极点在z = 0处,有(N—1)个零点位于有限z平面的任何位置。 FIR滤波器的设计分三步完成:

(1)技术要求:在设计滤波器之前,必须要有某些技术要求。这些技术要求是由用途决定的。

3