基于matlab的语音信号滤波去噪

基于matlab的语音信号滤波去噪
基于matlab的语音信号滤波去噪

2013届本科生毕业设计

题目:基于matlab声音信号的滤波去噪处理

作者姓名:柯运生

学号: 2009080313

院(系):机械与电子工程学院

专业:电子信息工程

指导教师:邵毅蒋明曦

指导教师职称:讲师工程师

2013年4月8日

SuZhou College

Year 2013 Bachelor Graduation Design

Title:Based on Matlab Voice Signal Filtering Denoising Processing

Author: Ke Yunsheng

Student ID: 2009080313

Department: Collage of Mechanical and Electronic Engineering Major: Electronic and Information Engineering Instructor: Shao Yi Jiang Mingxi

Professional Title: Lecture Engineer

April 8th, 2013

摘要

在数字信号处理中,滤波器的设计占有极其重要的地位。而其中,FIR数字滤波器和IIR数字滤波器是重要组成部分。Matlab具有功能强大、简单易学、编程效率高等特点,深受广大科技工作者的喜爱。特别是Matlab中还具有信号分析工具箱,所以对于使用者,不需要具备很强的编程能力,就可以方便地进行信号分析、处理和设计。利用Matlab中的信号处理工具箱,可以快速有效的设计各种数字滤波器。本论文基于Matlab语音信号处理的设计与实现,综合运用数字信号处理的相关理论知识,对加噪声语音信号进行时域、频域分析并滤波。而后通过理论推导得出相应结论,再利用Matlab作为编程工具进行计算机实现工作。在设计实现的过程之中,使用巴特沃斯、切比雪夫和双线性变法设计IIR数字滤波器,使用窗函数法来设计FIR数字滤波器,并利用Matlab作为辅助工具,完成设计中的计算与图形的绘制。通过对所设计滤波器的仿真和频率特性的分析可知,利用Matlab信号处理工具箱,可以快捷有效地设计FIR和IIR数字滤波器,过程简单、方便,结果的各项性能指标也均达到指定要求。

关键字:Matlab;滤波器;IIR;FIR

ABSTRACT

In digital signal processing, filter design occupies an extremely important position. And among them, the FIR digital filter and IIR digital filter is an important part. Matlab has powerful function, easy to learn, programming efficiency higher characteristic, and was deeply loved by the masses of scientific and technical workers.Especially also has signal analysis toolbox in Matlab, so for users, don't need to have strong programming ability, can be easily signal analysis, processing and design. Signal processing toolbox of Matlab, can be used to quickly and efficiently design all kinds of digital filter. In this paper the design and implementation of speech signal processing based on Matlab, the integrated use of the relevant theoretical knowledge of digital signal processing, to add noise speech signal in time domain, frequency domain analysis and filtering. And then corresponding conclusion through theoretical derivation, using Matlab as a programming tool for computer implementation work. Implementation in the design process, using butterworth, chebyshev and bilinear reform IIR digital filter design, window function method used to design FIR digital filter, and by using the Matlab as an auxiliary tool, to complete the design of computing and graphics drawing. Through a simulation of the designed filter and frequency characteristic analysis shows that using the Matlab signal processing toolbox, can quickly and effectively to design FIR and IIR digital filter, the process is simple, convenient, and the results of various performance indicators meet the specified requirements.

Keywords:Matlab; Filter; IIR; FIR

目录

绪论 (1)

1 语音信号处理的基本知识 (3)

1.1语音的录入和打开 (3)

1.2采样位数和采样频率 (3)

1.3时域信号FFT分析 (3)

1.4数字滤波器设计原理 (4)

2 Matlab相关函数 (5)

2.1 wavread函数 (5)

2.2其他相关函数 (5)

3 去噪和仿真的研究 (7)

3.1 语音文件在Matlab平台上的录入与打开 (7)

3.2 原始语音信号频谱分析及仿真 (7)

3.3 加噪语音信号频谱分析及仿真 (9)

3.4 去噪及仿真 (11)

3.5 结合去噪后的频谱图对比两种方式滤波的优缺点 (16)

结论 (17)

参考文献 (18)

致谢 (19)

绪论

语音信号的采集与分析技术的应用和发展与语音学、声音测量学、电子测量技术以及数字信号处理等学科紧密联系,同时也是一门涉及面很广的交叉学科。语音是人类获取信息的重要来源,是利用信息的重要手段。由于实验条件或各种其他主、客观条件的限制,在信号的传输过程中,语音处理系统都不可避免地要会受到各种噪声的干扰。噪声不仅降低了语音的可懂度,破坏了语音质量,而且还将会导致系统性能的急剧恶化,严重时会使整个系统无法正常工作。Matlab 是由美国Mathworks公司发布的一款软件,该软件主要面对的是科学计算、可视化以及交互式程序设计的高科技计算环境。它具有数值分析、矩阵计算、非线性动态系统的建模和仿真以及科学数据可视化等功能。它被集成在一个易于使用的视窗环境下,为工程设计、科学研究以及其它一些必须进行有效数值计算的众多科学领域提供了一种全面有效的解决方案。它在很大程度上摆脱了传统的其它编程语言的限制,如C语言、Fortran语言的编辑模式,代表了当今国际科学计算软件的先进水平。其强大的数据处理能力可以极大程度上削弱噪声影响,其还原出的真实的语音信号相符度一般都在90%以上。

数字滤波器和快速傅立叶变换(FFT)等是语音信号数字处理的理论和技术基础,是20世纪60年代形成的一系列数字信号处理的理论和算法。随着信息科学技术的快速发展,语音信号处理技术也相应取得了重大的进展:进入70年代之后,出现了很多新兴技术,其中语音信号的信息压缩和特征提取的线性预测技术(LPC)作用日益突出,逐渐在数字信号处理领域占据统治地位,并广泛应用于语音信号的分析、合成及其他各个应用领域。进入80年代后,一种新的技术:基于聚类分析的高效数据压缩技术—矢量量化(VQ),被应用到语音信号处理领域之中;而随着隐马尔可夫模型(HMM)描述语音信号过程的产生,80年代语音信号处理技术也随之发生了重大的发展。目前,HMM已构成了现代语音识别研究的重要基石。进入21世纪之后,人工神经网络,也即是人们所称的ANN的研究,取得了快速发展,语音信号处理的各项研究的发展是促进其进步的重要源泉之一,他的各项成果也体现在语音信号处理的各项技术之中。

本论文主要介绍的是语音信号的简单处理。由于语音信号的处理有很多种类,本论文仅针对滤波处理去噪这一范围,运用数字信号处理所学基本原理,以实现语音信号的处理,在Matlab7.0环境下综合运用信号提取,幅频变换以及傅里叶变换、滤波等技术来进行语音信号滤波去噪。我所做的工作就是运用Matlab 软件,在其上编写几个处理语音信号的程序,能对语音信号进行采集,并对其进行各种处理,达到简单的语音信号处理的目的。

硬件环境:

(1)处理器:Inter Pentium B950 (2)内存:2G (3)硬盘空间:460G

(4)显卡:NVIDIA GeForce GT520

开发环境:

(1)操作系统:Windows 7(64位旗舰版)

(2)开发环境:Matlab 7.0

基本方法步骤:

(1)语音信号的录制。

(2)在Matlab平台上读入语音信号。

(3)绘制频谱图并回放原始语音信号。

(4)利用Matlab编程加入一段正弦波噪音,设计滤波器去噪。

(5)利用Matlab编程加入一段随机噪音信号,设计FIR和IIR滤波器去噪,并分别绘制频谱图、回放语音信号。

(6)通过仿真后的图像以及对语音信号的回放,对比两种去噪方式的优缺点。

具体流程图如下所示:

语音信号采集

语音信号录入语音信号变换信号加噪语音信号滤波

效果显示对比

图1 论文设计流程

1 语音信号处理的基本知识

1.1语音的录入和打开

在Matlab中,[y,fs,bits]=wavread('Blip',[N1 N2]),用于读取语音信号,采样值放在向量y中。fs表示采样频率(Hz),bits表示采样位数。[N1 N2]表示读取从N1点到N2点的值。若只有一个N的点,则表示读取前N点的采样值。

sound(x,fs,bits)该函数的作用是用于对声音进行回放。向量x是一个复杂的“函数表达式”,代表了一个信号,可以像处理一个信号表达式一样处理这个声音信号。

1.2采样位数和采样频率

所谓采样位数,也即是采样值或取样值,一般是用来衡量声音波动变化的参数。指的是声卡在采集和播放声音文件时,所使用的数字声音信号的二进制位数。采样频率,则是指录音设备在一秒钟内对声音信号的采样次数,采样频率越高,则声音的还原就越真实,越自然。

对于音频接口来说,采样位数和采样率是最为重要的两个指标,也是选择音频接口的两个重要标准。单从理论上来说,无论采样频率如何,采样的位数决定了音频数据最大的力度范围。每增加一个采样位数,则相当于力度范围增加了6dB。采样位数越多,则捕捉到的信号就会越精确。对于采样率来说,你可以想象它类似于一个照相机,40kHz则意味着当音频流进入计算机时,计算机每秒会对其拍照达40000次。显然采样率越高,计算机摄取的图片会越多,对于原始音频的还原也将会更加精确。

1.3时域信号FFT分析

FFT,即快速傅氏变换,是离散傅氏变换的快速算法,它是根据离散傅氏变换DFT的奇、偶、虚、实等特性,对离散傅立叶变换的算法进行改进而后获得的。在Matlab的信号处理工具箱中,函数FFT和IFFT用于快速傅立叶变换及其逆变换。函数FFT用于序列快速傅立叶变换,其调用格式为:y=fft(x)。其中x是序列,y是相应序列的FFT。x可以为一向量,也可以是矩阵。若x为一向量,y 则是x的FFT,且和x相同长度;若x为矩阵,y则是对矩阵的每一列向量进行FFT。若x长度是2的幂次方,函数fft将执行高速基-2FFT算法,否则fft执行的是一种混合基的离散傅立叶变换算法,计算速度相对较慢。函数FFT的另一种调用格式为:y=fft(x,N),该式中,x,y意义同前,N为正整数。函数执行N 点FFT,若x为向量且长度小于N,则函数将将使x补零至长度N。若向量x的长度大于N,则函数会截短x使之长度为N。若x为矩阵,则按相同方法对x进行处理。

1.4数字滤波器设计原理

数字滤波器的作用是利用离散时间系统的特性,对输入信号波形(或频谱)进行加工与处理,或者说利用数字方法,按预定的要求对信号进行变换。

可以将数字滤波器理解为一个算法或者程序,将代表输入信号的数字时间序列,转化为代表输出信号的数字时间序列,并在转化过程中,使信号按预定的形式变化。

数字滤波器有多种,根据数字滤波器冲激响应的时域特征,可将数字滤波器分为两种,一种是无限长冲激响应(IIR)滤波器,另外一种则是有限长冲激响应(FIR)滤波器。从性能上说,IIR滤波器传输函数的极点可位于单位圆内的任何地方,因此可用于较低的阶数,以获得高的选择性,所用的存贮单元少,所以经济且效率较高。但是这个高效率是以牺牲相位的非线性为代价的。若选择性越好,则相位非线性失真会越严重。相反,FIR滤波器却可以得到严格的线性相位输出,但由于FIR滤波器传输函数的极点固定在原点,因而只能用较高的阶数以达到高的选择性;对于同样的滤波器设计指标,FIR滤波器所要求的阶数可以比IIR滤波器高5~10倍,但是成本较高,信号延时也较大;所以如若按相同的选择性和相同的线性要求来说的话,则IIR滤波器就必须加全通网络以进行相位较正,同时要增加滤波器的节数和复杂性。

整体来看,IIR与FIR各有优缺点。IIR滤波器能达到同样效果,且阶数少,延迟也较低,但是会有稳定性和非线性相位问题;FIR滤波器虽然没有稳定性问题,且线性相位,但阶数多,延迟大。

2Matlab相关函数

2.1 wavread函数

选取一段声音信号,而后利用该函数,在Matlab软件平台下对语音信号进行采样处理,同时记住采样频率与采样点数。通过使用wavread函数,加深理解采样频率、采样位数等概念。

wavread函数调用格式一般有以下几种:

y=wavread(file),该式读取file所规定的wav文件,返回的采样值放在向量y中。

[y,fs,nbits]=wavread(file),所得采样值放在向量y中,fs表示采样频率(Hz),nbits表示采样位数。

y=wavread(file,N),读取前N点的采样值并放在向量y中。

y=wavread(file,[1N,2N]),读入从1N到2N点的采样值并放在向量y中。2.2其他相关函数

(1)函数fftfilt

函数fftfilt的调用格式为:

y=fftfilt(b,x)。

该格式是利用基于FFT的重叠相加法对数据进行滤波处理,但这种频域滤波技术只对FIR滤波器有效。该函数是通过向量b描述的滤波器对x数据进行滤波。

(2)函数sound

函数sound可以对声音进行回放。其调用格式为:

sound(x,fs,bits)。

(3)函数filter

函数filter的调用格式为:

y=filter(b,a,x)。

该格式采用的是用数字滤波器对数据进行滤波,既可以用于IIR滤波器,同样,也可以用于FIR滤波器。其中,向量b和a分别表示的是系统函数的分子、分母多项式的系数。若a=1,则表示的是FIR滤波器,否则就是IIR滤波器。该函数是利用给出的向量b和a,对x中的数据进行滤波,结果放入向量y。(4)函数randn

Randn函数产生的是[0,1]上的均匀分布的随机序列,randn产生均值为0,方差为1的高斯随机序列,也就是白噪声序列。

也就是说,可以直接使用下面两个函数对原始信号添加噪声。调用格式为:y=x+rand(length(x),1),或者y=x+randn(length(x),1)。

(5)函数FFT

在Matlab的信号处理工具箱功能中,函数FFT用于序列快速傅立叶变换。

FFT函数的一种调用格式为:

y=fft(x)

其中,x是序列,y是序列的FFT,x可以为一向量或矩阵。若x为一向量,y 是x的FFT。且和x相同长度。

FFT函数的另一种调用格式为:

y=fft(x,N)

式中,x,y意义同前,N为正整数。

3 去噪和仿真的研究

3.1 语音文件在Matlab平台上的录入与打开

单击自己的电脑开始菜单,选择所有程序,接着选择附件,再选择娱乐,最后选择录音。自己录入“毕业设计声音文件”语音信号,然后保存在MATLAB的work文件夹里面,命名为“chushi.wav”。

利用Matlab中的wavread命令,读入(采集)本段语音信号,将它赋值给某一向量。

3.2 原始语音信号频谱分析及仿真

在Matlab中使用wavread函数,可得出一个采样频率为22500HZ,并且声音是单声道的信号。利用Sound函数,我们可以清晰的听到“毕业设计声音文件”的语音。采集数据并画出波形图。

在Matlab的信号处理工具箱中,函数FFT和IFFT分别用于快速傅立叶变换和逆变换。前面已简单介绍过,这里详细介绍下这些函数。

函数fft用于序列快速傅立叶变换,是常用的信号处理函数。

函数的一种调用格式:y=fft(x)。

其中,x是序列,y是序列的快速傅里叶变换FFT,x可以为一向量,也可以为一矩阵。若x为一向量,则y是x的fft,且和x为相同长度。若x为一矩阵,y则是对矩阵的每一列向量进行的fft。

若序列x的长度是2的幂次方,则函数fft执行高速基-2fft算法;否则

fft将执行一种混合基的离散傅立叶变换算法,计算速度会较慢。

函数fft的另一种调用格式为y=fft(x,N)。

该式中,x,y的意义同前,N为正整数。函数执行序列x的N点快速傅里叶变换(fft)。若x为向量,且长度小于N,则函数会将x补零至长度N。若向量x的长度大于N,则函数将截短x,使之长度为N。若x为矩阵,则按相同方法对x进行相应处理。

由于经函数fft所求得的序列y一般是复序列,所以通常要求其幅值和相位。Matlab提供求复数的幅值和相位函数:abs,angle,这些函数一般和fft同时使用。函数abs(x)用于计算复向量x的幅值,而函数angle(x)则用于计算复向量的相角,用弧度表示。

用Matlab工具箱函数fft进行频谱分析时,需注意:

(1)函数fft返回值y的数据结构对称性

一般的,对于N点的x(n)序列的fft是N点的复数序列,其点n=N/2+1所对应的是奈奎斯特频率,作频谱分析时仅取序列X(k)的前一半,即前N/2点即可。由于X(k)的后一半序列和前一半序列是对称的,所以不必再求。

(2)频率计算

若N 点序列x(n)(n=0,1,…,N-1)是在采样频率下获得的,则它的FFT 也是N 点序列,即X(k)(k=0,1,2,…,N-1),其第k 点所对应实际频率值为f=k*f/N.

下面的一段程序是语音信号在Matlab 中的简单体现。通过运行该段程序,我们实现了语音信号的读入与打开,并绘出了语音信号的波形频谱图。

[x,fs,bits]=wavread('chushi .wav’);

sound(x,fs,bits);

X=fft(x,4096);

magX=abs(X);

angX=angle(X);

subplot(221);plot(x);title('原始信号波形');

subplot(222);plot(X); title('原始语音信号采样后的频谱图’)

subplot(223);plot(magX);title('原始信号幅值');

subplot(224);plot(angX);title('原始信号相位');

程序运行时可以听到声音,而后得到的图形如图2所示:

00.51

1.52x 10

5-1-0.5

0.5

1

原始信号波形

-0.1-0.0500.050.1-0.1-0.0500.05

0.1原始语音信号采样后的频谱图0

20004000600000.05

0.1

0.15

0.2

原始信号幅值

200040006000-4-2024原始信号相位

图2 初始信号波形

3.3 加噪语音信号频谱分析及仿真

下面将介绍在Matlab平台上如何实现在一段原始语音信号加入一个随机噪声信号。

函数randn:产生正态分布的随机数或者矩阵的函数。产生的均值为0,方差σ^2=1,标准差σ=1的正态分布的随机数或矩阵的函数。

用法:Y=randn(n),返回一个n*n的随机项矩阵。如果n不是个数量,则将返回错误信息。

Y=randn(m,n) 或 Y=randn([m n]),返回一个m*n的随机项矩阵。

Y=randn(size(A)),返回一个和A有同样维数大小的随机数组。

randn返回一个每次都变化的数量。

利用下面的一段程序,将实现用randn函数把一段随机噪音信号加入原始语音信号的信号处理功能:

[y,fs,bits]=wavread('chushi.wav');

sound(y,fs)

n=length(y)

y_p=fft(y,n);

f=fs*(0:n/2-1)/n;

figure(1)

subplot(2,1,1);

plot(y);

title('原始语音信号采样后的时域波形');

xlabel('时间轴')

ylabel('幅值A')

subplot(2,1,2);

plot(f,abs(y_p(1:n/2)));

title('原始语音信号采样后的频谱图');

xlabel('频率Hz');

ylabel('频率幅值');

L=length(y)

noise=0.1*randn(L,2);

y_z=y+noise;

sound(y_z,fs)

n=length(y);

y_zp=fft(y_z,n);

f=fs*(0:n/2-1)/n;

figure(2)

subplot(2,1,1);

plot(y_z);

title('加噪语音信号时域波形');

xlabel('时间轴')

ylabel('幅值A')

subplot(2,1,2);

plot(f,abs(y_zp(1:n/2)));

title('加噪语音信号频谱图');

xlabel('频率Hz');

ylabel('频率幅值');

初始信号的时域波形、频谱图与加噪后语音信号的时域波形、频谱图分别如下图所示。

图3 原始信号时域波形和频谱

00.20.40.60.81 1.2

1.4 1.6 1.82x 105

-1-0.5

0.5

1

原始语音信号采样后的时域波形

时间轴幅值A 00.51

1.52

2.5x 104

0500

1000

1500

原始语音信号采样后的频谱图

频率Hz 频率幅值

00.20.40.60.81

1.2 1.4 1.6 1.82x 105

-1-0.5

0.5

1

加噪语音信号时域波形

时间轴幅值A 00.51

1.52

2.5x 1040500

1000

1500

加噪语音信号频谱图

频率Hz 频率幅值

图4 加噪信号时域波形和频谱

再通过对原始语音信号的回放效果与加噪后的语音信号回放的效果的对比,人耳可以明显辨别出两种语音信号不一样了,加噪后的语音信号在听觉上比原始语音信号要浑浊很多,而且还有吱吱嘎嘎的混杂音。

3.4 去噪及仿真

(1)FIR 滤波器法去噪

通过对上一节中加噪语音信号和原始语音信号频谱图对比可以知道,噪音大部分是Hz 大于5000的部分,故设计低通滤波器进行滤波处理。接下来我们要用设计的FIR 低通滤波器对上一节中加噪语音信号进行滤波处理。

用自己设计的FIR 数字低通滤波器对加噪的语音信号进行滤波时,在Matlab 中,FIR 滤波器利用函数fft 对信号进行滤波。函数fft 用的是重叠相加法实现线性卷积的计算。调用格式为:y=fft(h,x,M)。其中,h 是系统单位冲击响应向量;x 是输入序列向量;y 是系统的输出序列向量,M 是有用户选择的输入序列的分段长度,缺省时,默认的输入向量的重长度M=512。

用设计好的FIR 数字低通滤波器对加噪语音信号的滤波程序:

[y,fs,bits]=wavread('chushi.wav');

sound(y,fs)

n=length(y)

y_p=fft(y,n);

f=fs*(0:n/2-1)/n;figure(1)

subplot(2,1,1);

plot(y);

title('原始语音信号采样后的时域波形'); xlabel('时间轴')

ylabel('幅值A')

subplot(2,1,2);

plot(f,abs(y_p(1:n/2)));

title('原始语音信号采样后的频谱图'); xlabel('频率Hz');

ylabel('频率幅值');

L=length(y)

noise=0.1*randn(L,2);

y_z=y+noise;

sound(y_z,fs)

n=length(y);

y_zp=fft(y_z,n);

f=fs*(0:n/2-1)/n;figure(2)

subplot(2,1,1);plot(y_z);

title('加噪语音信号时域波形');

xlabel('时间轴')

ylabel('幅值A')

subplot(2,1,2);

plot(f,abs(y_zp(1:n/2)));

title('加噪语音信号频谱图');

xlabel('频率Hz');

ylabel('频率幅值');

Ft=8000;

Fp=1000;

Fs=1200;

wp=2*Fp/Ft;

ws=2*Fs/Ft;

rp=1;rs=50;

p=1-10.^(-rp/20);s=10.^(-rs/20);

fpts=[wp ws];

0123

x 10

40500

1000

1500

滤波前信号的频谱

0123x 10405001000

1500滤波后信号的频谱00.51 1.5

2x 105-1-0.5

0.5

1

滤波前信号的时域波形

00.51 1.52x 105

-1-0.500.5

1滤波后信号的时域波形mag=[1 0];dev=[p s];

[n21,wn21,beta,ftype]=kaiserord(fpts,mag,dev);

b21=fir1(n21,wn21,Kaiser(n21+1,beta));

[h,w]=freqz(b21,1);plot(w/pi,abs(h));

title('FIR 低通滤波器');x=fftfilt(b21,y_z);

X=fft(x,n);figure(4);

subplot(2,2,1);plot(f,abs(y_zp(1:n/2)));

title('滤波前信号的频谱');

subplot(2,2,2);plot(f,abs(X(1:n/2)));

title('滤波后信号的频谱');

subplot(2,2,3);plot(y_z);

title('滤波前信号的时域波形')

subplot(2,2,4);plot(x);

title('滤波后信号的时域波形')

sound(x,fs,bits)

而后得到图像如图5所示:

图5 FIR 滤波效果图

分析:从以上四图的比较,可以很明显和直观的看出原始语音信号和加噪语音信号时域波形和频谱图的区别。加噪后的语音信号的时域波形比原始语音信号要模糊得多,频谱图则是在频率5000Hz以后出现了明显的变化。

通过滤波前的信号波形和频谱图的对比,可以明显看出,滤波后的波形开始变得清晰了,开始有点接近原始信号的波形图了。滤波后信号的频谱图也在5000Hz以后开始逐渐接近原始语音信号的频谱图。

再从对语音信号的回放,人耳可以辨别出加噪后的语音信号比较浑浊,还有很明显嘎吱嘎吱的杂音在里面。滤波后,语音信号较加噪后的信号有了明显的改善,基本可以听清楚了,而且杂音也没有那么强烈,但是声音依然没有原始语音信号那么清晰脆耳。

(2)IIR滤波器法去噪

同样,也设计一个IIR低通滤波器对加噪语音信号进行内部处理,程序如下:Ft=8000;

Fp=1000;

Fs=1200;

wp=2*pi*Fp/Ft;

ws=2*pi*Fs/Ft;

fp=2*Ft*tan(wp/2);

fs=2*Fs*tan(wp/2);

[n11,wn11]=buttor d(wp,ws,1,50,‘s'); %求低通滤波器的阶数和截止频率

[b11,a11]=butter(n11,wn11,'s'); %求S域的频率响应的参数

[num11,den11]=bilinear(b11,a11,0.5); %双线性变换实现S域到Z域的变换[h,w]=freqz(num11,den11); %根据参数求出频率响应

plot(w*8000*0.5/pi,abs(h));

legend('用butter设计');

grid;

[y,fs,nbits]=wavread ('BYSJ.wav');

n=length(y);%求出语音信号的长度

noise=0.01*randn(n,2); %随机函数产生噪声

s=y+noise; %语音信号加入噪声

S=fft(s); %傅里叶变换

z11=filter(num11,den11,s);

sound(z11);

m11=fft(z11); %求滤波后的信号

subplot(2,2,1);

00.51 1.5

2x 1050500

1000

1500

滤波前信号的频谱

00.51 1.52x 105

05001000

1500滤波后信号的频谱00.51 1.5

2x 105-1-0.5

0.5

1

滤波前信号的波形

00.51 1.52x 105

-1-0.500.5

1滤波后的信号波形plot(abs(S),'g');

title('滤波前信号的频谱');

grid;

subplot(2,2,2);

plot(abs(m11),'r');

title('滤波后信号的频谱');

grid;

subplot(2,2,3);

plot(s);

title('滤波前信号的波形');

grid;

subplot(2,2,4);

plot(z11);

title('滤波后的信号波形');

得到图像如下:

图6 IIR 滤波效果图

通过运行程序,我们可以听出,滤波效果很不好,失真现象严重,并且出现了严重的寄生震荡,基本无法分辨出原语音信号。

滤波器语音信号去噪讲解

******************* 实践教学 ******************* 兰州理工大学 计算机与通信学院 2013年春季学期 信号处理课程设计 题目:基于MATLAB的FIR滤波器语音信号去噪专业班级:通信工程(1)班 姓名:王兴栋 学号:10250114 指导教师:陈海燕 成绩:

摘要 语音信号在数字信号处理中占有极其重要的地位,因此选择通过对语音信号的研究来巩固和掌握数字信号处理的基本能力十分具有代表性。对数字信号处理离不开滤波器,因此滤波器的设计在信号处理中占有极其重要的地位。而MATLAB 软件工具箱提供了对各种数字滤波器的设计。本论文“在MATLAB平台上实现对语音信号的去噪研究与仿真”综合运用了数字信号处理的各种基本知识,进而对不带噪语音信号进行谱分析以及带噪语音信号进行谱分析和滤波处理。通过理论推导得出相应的结论,再通过利用MATLAB作为编程工具来进行计算机实现比价已验证推导出来的结论。在设计过程中,通过设计FIR数字滤波器和IIR数字滤波器来完成滤波处理。在设计过程中,运用了MATLAB对整个设计中的图形的绘制和一些数据的计算以及仿真。 关键字滤波器;MATLAB;仿真;滤波

前言 语音是语言的声学表现,是人类交流信息最自然、最有效、最方便的手段。随着社会文化的进步和科学技术的发展,人类开始进入了信息化时代,用现代手段研究语音处理技术,使人们能更加有效地产生、传输、存储、和获取语音信息,这对于促进社会的发展具有十分重要的意义,因此,语音信号处理正越来越受到人们的关注和广泛的研究。 语音信号是信息技术处理中最重要的一门科学,是人类社会几步的标志。那么什么是语音?语音是人类特有的功能,也是人类获取外界信息的重要工具,也是人与人交流必不可少的重要手段。那么什么又是信号?那信号是什么呢?信号是传递信息的函数。离散时间信号——序列——可以用图形来表示。 语音信号处理是一门用研究数字信号处理研究信号的科学。它是一新兴的信息科学,同时又是综合多个学科领域的一门交叉科学。语音在我们的日常生活中随时可见,也随处可见,语音很大程度上可以影响我们的生活。所以研究语音信号无论是在科学领域上还是日常生活中都有其广泛而重要的意义。 本论文主要介绍的是的语音信号的简单处理。本论文针对以上问题,运用数字信号学基本原理实现语音信号的处理,在matlab7.0环境下综合运用信号提取,幅频变换以及傅里叶变换、滤波等技术来进行语音信号处理。我所做的工作就是在matlab7.0软件上编写一个处理语音信号的程序,能对语音信号进行采集,并对其进行各种处理,达到简单语音信号处理的目的。 对语音信号的研究,本论文采用了设计两种滤波器的基本研究方法来达到研究语音信号去噪的目的,最终结合图像以及对语音信号的回放,通过对比,得出结论。

语音信号滤波去噪——使用双线性变换法设计的切比雪夫II型滤波器

课程设计任务书

语音信号滤波去噪——使用脉冲响应不变法设计的巴特沃斯滤波器 摘要本课程设计主要运用麦克风采集一段语音信号,绘制波形并观察其频谱,给定相应技术指标,用脉冲响应不变法设计的一个满足指标的巴特沃斯IIR滤波器,对该语音信号进行滤波去噪处理,比较滤波前后的波形和频谱并进行分析,根据结果和学过的理论得出合理的结论。 关键词课程设计;滤波去噪;巴特沃斯滤波器;脉冲响应不变法;MATLAB 1 引言 本课程设计主要利用麦克风采集一段8000Hz,8k的单声道语音信号,并绘制波形观察其频谱,再用MATLAB利用脉冲响应不变法设计一个巴特沃斯滤波器,将该语音信号进行滤波去噪处理。 1.1 课程设计目的 《数字信号处理》课程设计是在学生完成数字信号处理和MATLAB的结合后的基本实验以后开设的。本课程设计的目的是为了让学生综合数字信号处理和MATLAB并实现一个较为完整的小型滤波系统。这一点与验证性的基本实验有本质性的区别。开设课程设计环节的主要目的是通过系统设计、软件仿真、程序安排与调试、写实习报告等步骤,使学生初步掌握工程设计的具体步骤和方法,提高分析问题和解决问题的能力,提高实际应用水平。 1.2课程设计的要求 (1)滤波器指标必须符合工程设计。 (2)设计完后应检查其频率响应曲线是否满足指标。

(3)处理结果和分析结论应该一致,而且应符合理论。 (4)独立完成课程设计并按要求编写课程设计报告。 2 设计原理 用麦克风采集一段语音信号,绘制波形并观察其频谱,给定相应技术指标,用脉冲响应不变法设计的一个满足指标的巴特沃斯IIR滤波器,对该语音信号进行滤波去噪处理,比较滤波前后的波形和频谱并进行分析。 2.1 IIR滤波器 I IR滤波器设计方法有间接法和直接法,间接法是借助于模拟滤波器的设计方法进行的。其设计步骤是:先设计过渡模拟滤波器得到系统函数H(s),然后将H(s)按某种方法转换成数字滤波器的系统函数H(z)。FIR滤波器比鞥采用间接法,常用的方法有窗函数法、频率采样发和切比雪夫等波纹逼近法。对于线性相位滤波器,经常采用FIR 滤波器。 对于数字高通、带通滤波器的设计,通用方法为双线性变换法。可以借助于模拟滤波器的频率转换设计一个所需类型的过渡模拟滤波器,再经过双线性变换将其转换策划那个所需的数字滤波器。具体设计步骤如下: (1)确定所需类型数字滤波器的技术指标。 (2)将所需类型数字滤波器的边界频率转换成相应的模拟滤波器的边界频率,转换公式为Ω=2/T tan(0.5ω) (3)将相应类型的模拟滤波器技术指标转换成模拟低通滤波器技术指标。 (4)设计模拟低通滤波器。 (5)通过频率变换将模拟低通转换成相应类型的过渡模拟滤波器。 (6)采用双线性变换法将相应类型的过渡模拟滤波器转换成所需类型的数字滤波器。 我们知道,脉冲响应不变法的主要缺点是会产生频谱混叠现象,使数字滤波器的频响偏离模拟滤波器的频响特性。为了克服之一缺点,可以采用双线性变换法。 下面我们总结一下利用模拟滤波器设计IIR数字低通滤波器的步骤: (1)确定数字低通滤波器的技术指标:通带边界频率、通带最大衰减,阻带截止频率、阻带最小衰减。

语音识别Matlab可视化编程(部分)

附录1:录音函数:audiorecorder.m % 运行平台:Windows 8.1 64bit MATLAB R2014a % 录音2秒钟 clear all;clc;close all; fs = 16000; %2é?ù?μ?ê recorder = audiorecorder; disp('Start speaking.') recordblocking(recorder, 2); disp('End of Recording.'); % 回放录音数据 play(recorder); % 获取录音数据 xx = getaudiodata(recorder,'int16'); %绘制录音数据波形 plot(xx); A6:“录音”按键回调函数 function pushbutton1_Callback(hObject, eventdata, handles) % hObject handle to pushbutton1 (see GCBO) % eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA) fs = 16000; recorder = audiorecorder; disp('Start speaking.') recordblocking(recorder, 2); disp('End of Recording.'); % 回放录音数据 % play(recorder); % 获取录音数据 k = getaudiodata(recorder,'int16'); plot(handles.axes1,k); load mfcc.mat; [StartPoint,EndPoint]=vad(k,fs); cc=mfcc(k); cc=cc(StartPoint-2:EndPoint-2,:); test.StartPoint=StartPoint; test.EndPoint=EndPoint;

信号系统处理 语音信号滤波处理

数字信号处理实验报告 实验名称:基于MATLAB对语音信号 进行分析及滤波处理 院系:物联网工程学院 班级:电子信息工程1101 姓名:

一、实验目的 综合计算运用数字信号处理的理论知识进行频谱分析和滤波器设计,通过理论推导得出相应的结论,培养发现问题、分析问题和解决问题的能力。并利用MATLAB作为工具进行实现,从而复习巩固课堂所学的理论知识,提高对所学知识的综合应用能力,并从实践上初步实现对数字信号的处理。此外,还系统的学习和实现对语音信号处理的整体过程,从语音信号的采集到分析、处理、频谱分析、显示和储存。 二、实验要求 1.分析原始语音信号的时域特性和频谱特性。 2.设计一个IIR滤波器,用该滤波器对语音信号进行滤波处理,分析滤波后信号的时域特性和频谱特性。 3.设计一个FIR滤波器,用该滤波器对语音信号进行滤波处理,分析滤波后信号的时域特性和频谱特性。 三、实验原理 1.采样定理:在进行模拟/数字信号的转换过程中,当采样频率fs.max大于信号中最高频率fmax的2倍时(fs.max>=2fmax),采样之后的数字信号完整地保留了原始信号中的信息,一般实际应用中保证采样频率为信号最高频率的5~10倍;采样定理又称奈奎斯特定理。 采样频率越高,即采样的时间间隔越短,对声音波形的表示越精确。 2.时域信号的FFT分析:信号的频谱分析就是计算机信号的傅里叶变换。连续信号与系统的傅里叶分析显然不便于用计算机进行计算,使其应用受到限制。而FFT是一种时域和频域均离散化的变换,适合数值运算,成为用计算机分析离散信号和系统的有力工具。对连续信号和系统,可以通过时域采样,应用DFT进行近似谱分析。 3.IIR数字滤波器设计原理利用双线性变换设计IIR滤波器(巴特沃斯数字低通滤波器的设计),首先要设计出满足指标要求的模拟滤波器的传递函数Ha(s),然后由Ha(s)通过双线性变换可得所要设计的IIR滤波器的系统函数H(z)。如果给定的指标为数字滤波器的指标,则首先要转换成模拟滤波器的技术指标,这里主要是边界频率Wp和Ws的转换,对ap和as指标不作变化。边界频率的转换关系为∩=2/T tan(w/2)。接着,按照模拟低通滤波器的技术指标根据相应设计公式

基于MATLAB的语音信号采集与处理

工程设计论文 题目:基于MATLAB的语音信号采集与处理 姓名: 班级: 学号: 指导老师:

一.选题背景 1、实践意义: 语音信号是一种非平稳的时变信号,它携带着各种信息。在语音编码、语音合成、语音识别和语音增强等语音处理中无一例外需要提取语音中包含的各种信息。语音信号分析的目的就在于方便有效地提取并表示语音信号所携带的信息。所以理解并掌握语音信号的时域和频域特性是非常重要的。 通过语音相互传递信息是人类最重要的基本功能之一.语言是人类特有的功能.声音是人类常用工具,是相互传递信息的最重要的手段.虽然,人可以通过多种手段获得外界信息,但最重要,最精细的信息源只有语言,图像和文字三种.与用声音传递信息相比,显然用视觉和文字相互传递信息,其效果要差得多.这是因为语音中除包含实际发音容的话言信息外,还包括发音者是谁及喜怒哀乐等各种信息.所以,语音是人类最重要,最有效,最常用和最方便的交换信息的形式.另一方面,语言和语音与人的智力活动密切相关,与文化和社会的进步紧密相连,它具有最大的信息容量和最高的智能水平。 语音信号处理是研究用数字信号处理技术对语音信号进行处理的一门学科,处理的目的是用于得到某些参数以便高效传输或存储;或者是用于某种应用,如人工合成出语音,辨识出讲话者,识别出讲话容,进行语音增强等. 语音信号处理是一门新兴的学科,同时又是综合性的多学科领域,

是一门涉及面很广的交叉学科.虽然从事达一领域研究的人员主要来自信息处理及计算机等学科.但是它与语音学,语言学,声学,认知科学,生理学,心理学及数理统计等许多学科也有非常密切的联系. 语音信号处理是许多信息领域应用的核心技术之一,是目前发展最为迅速的信息科学研究领域中的一个.语音处理是目前极为活跃和热门的研究领域,其研究涉及一系列前沿科研课题,巳处于迅速发展之中;其研究成果具有重要的学术及应用价值. 数字信号处理是利用计算机或专用处理设备,以数值计算的方法对信号进行采集、抽样、变换、综合、估值与识别等加工处理,借以达到提取信息和便于应用的目的。它在语音、雷达、图像、系统控制、通信、航空航天、生物医学等众多领域都获得了极其广泛的应用。具有灵活、精确、抗干扰强、度快等优点。 数字滤波器, 是数字信号处理中及其重要的一部分。随着信息时代和数字技术的发展,受到人们越来越多的重视。数字滤波器可以通过数值运算实现滤波,所以数字滤波器处理精度高、稳定、体积小、重量轻、灵活不存在阻抗匹配问题,可以实现模拟滤波器无法实现的特殊功能。数字滤波器种类很多,根据其实现的网络结构或者其冲激响应函数的时域特性,可分为两种,即有限冲激响应( FIR,Finite Impulse Response)滤波器和无限冲激响应( IIR,Infinite Impulse Response)滤波器。 FIR滤波器结构上主要是非递归结构,没有输出到输入的反馈,系统函数H (z)在处收敛,极点全部在z = 0处(因果系统),因而只能

语音信号处理实验报告

通信与信息工程学院 信息处理综合实验报告 班级:电子信息工程1502班 指导教师: 设计时间:2018/10/22-2018/11/23 评语: 通信与信息工程学院 二〇一八年 实验题目:语音信号分析与处理 一、实验内容 1. 设计内容 利用MATLAB对采集的原始语音信号及加入人为干扰后的信号进行频谱分析,使用窗函数法设计滤波器滤除噪声、并恢复信号。 2.设计任务与要求 1. 基本部分

(1)录制语音信号并对其进行采样;画出采样后语音信号的时域波形和频谱图。 (2)对所录制的语音信号加入干扰噪声,并对加入噪声的信号进行频谱分析;画出加噪后信号的时域波形和频谱图。 (3)分别利用矩形窗、三角形窗、Hanning窗、Hamming窗及Blackman 窗几种函数设计数字滤波器滤除噪声,并画出各种函数所设计的滤波器的频率响应。 (4)画出使用几种滤波器滤波后信号时域波形和频谱,对滤波前后的信号、几种滤波器滤波后的信号进行对比,分析信号处理前后及使用不同滤波器的变化;回放语音信号。 2. 提高部分 (5)录制一段音乐信号并对其进行采样;画出采样后语音信号的时域波形和频谱图。 (6)利用MATLAB产生一个不同于以上频段的信号;画出信号频谱图。 (7)将上述两段信号叠加,并加入干扰噪声,尝试多次逐渐加大噪声功率,对加入噪声的信号进行频谱分析;画出加噪后信号的时域波形和频谱图。 (8)选用一种合适的窗函数设计数字滤波器,画出滤波后音乐信号时域波形和频谱,对滤波前后的信号进行对比,回放音乐信号。 二、实验原理 1.设计原理分析 本设计主要是对语音信号的时频进行分析,并对语音信号加噪后设计滤波器对其进行滤波处理,对语音信号加噪声前后的频谱进行比较分析,对合成语音信号滤波前后进行频谱的分析比较。 首先用PC机WINDOWS下的录音机录制一段语音信号,并保存入MATLAB软件的根目录下,再运行MATLAB仿真软件把录制好的语音信号用audioread函数加载入MATLAB仿真软件的工作环境中,输入命令对语音信号进行时域,频谱变换。 对该段合成的语音信号,分别用矩形窗、三角形窗、Hanning窗、Hamming窗及Blackman窗几种函数在MATLAB中设计滤波器对其进行滤波处理,滤波后用命令可以绘制出其频谱图,回放语音信号。对原始语音信号、合成的语音信号和经过滤波器处理的语音信号进行频谱的比较分析。 2.语音信号的时域频域分析 在Matlab软件平台下可以利用函数audioread对语音信号进行采样,得到了声音数据变量y,同时把y的采样频率Fs=44100Hz放进了MATALB的工作空间。

基于语音识别的智能小车设计-毕设论文

基于语音识别的智能小车 摘要 随着计算机技术、模式识别和信号处理技术及声学技术等的发展,使得能满足各种需要的语音识别系统的实现成为可能。近二三十年来,语音识别在计算机、信息处理、通信与电子系统、自动控制等领域中有着越来越广泛的应用。本设计是语音识别在控制领域的一个很好实现,它将原本需要手工操作的工作用语音来方便地完成。 语音识别按说话人的讲话方式可分为孤立词(Isolated Word)识别、连接词(Connected Word)识别和连续语音(Continuous Speech)识别。从识别对象的类型来看,语音识别可以分为特定人(Speaker Dependent)语音识别和非特定人(Speaker Independent)语音识别。本设计采用的识别类型是特定人孤立词语音识别。 本系统分上位机和下位机两大方面。上位机利用PC上MATLAB强大的数学计算能力,进行语音输入、端点监测、特征参数提取、匹配、串口控制等工作,根据识别到的不同语音通过PC串口向下位机发送不同的指令。下位机是单片机控制的一个小车,单片机收到上位机传来的指令后,根据不同的指令控制小车完成不同的动作。 该设计对语音识别的现有算法进行了验证和实现,并对端点检测和匹配算法进行了些许改进。本设计达到了预期目标,实现了所期望的功能效果。 关键词:MATLAB,语音识别,端点检测,LPC,单片机,电机控制

SMART CAR GASED SPEECH RECOGNITION ABSTRACT With the development of computer technology,pattern recognition,signal processing technology and acoustic technology etc, the speech recognition system that can meet the various needs of people is more possible to achieve.The past three decades, the voice recognition in the field of computer, information processing, communications and electronic systems, automatic control has increasingly wide range of applications. Speech recognition by the speaker's speech can be divided into isolated word (Isolated Word) identification, conjunctions (Connected Word) and continuous speech recognition (Continuous Speech) identification. Identifying the type of object from the point of view, the voice recognition can be divided into a specific person (Speaker Dependent) speech recognition and non-specific (Speaker Independent) speech recognition. This design uses the identification type is a specific person isolated word speech recognition. This design is of a good implementation of speech recognition in the control field, it does the work that would otherwise require manual operation by the voice of people easily.This system includes two major aspects:the host system and the slave system. The host system use the MATLAB on the computer which has powerful mathematical computing ability to do the work of voice input, endpoint monitoring, feature extraction, matching, identification and serial control,then it send different commands through the PC serial port to slave system according different recognised voice. The slave system is a car controlled by a single-chip micro-controller.It controls the car do different actions according different instructions received.

根据MATLAB的加噪语音信号的滤波

《计算机仿真技术》 基于MATLAB的加噪语音信号的滤波学生姓名: 专业:电子信息工程 班级: 学号: 指导教师: 完成时间:2017年12月

一.滤波器的简述 在MATLAB环境下IIR数字滤波器和FIR数字滤波器的设计方法即实现方法,并进行图形用户界面设计,以显示所介绍迷你滤波器的设计特性。 在无线脉冲响应(IIR)数字滤波器设计中,先进行模拟滤波器的设计,然后进行模拟-数字滤波器转换,即采用脉冲响应不变法及双线性Z变化法设计数字滤波器,最后进行滤波器的频带转换。在有限脉冲响应(FIR)数字滤波器设计中,讨论了FIR线性相位滤波的特点和用窗口函数设计FIR数字滤波器两个问题。两类滤波器整个过程都是按照理论分析、编程设计、集体实现的步骤进行的。为方便分析直观者直观、形象、方便的分析滤波器的特性,创新的设计出图形用户界面---滤波器分析系统。整个系统分为两个界面,其内容主要包括四个部分:System(系统)、Analysis(分析)、Tool(工具)、Help(帮助)。 数字滤波在DSP中占有重要地位。数字滤波器按实现的网络结构或者从单位脉冲响应,分为IIR(无限脉冲响应)和FIR(有限脉冲响应)滤波器。如果IRR 滤波器和FIR滤波器具有相同的性能,那么通常IIR滤波器可以用较低的阶数获得高的选择性,执行速度更快,所有的存储单元更少,所以既经济又高效。二.设计要求 1.在matlab平台上录制一段语音信号; 2.完成语音信号的谱分析; 3.对语音信号进行加噪以及加噪后信号的谱分析; 4.选择合适的滤波器进行滤波,确定相关指标; 5.实现滤波过程,显示滤波后的结果,并进行谱分析。 三.实验内容与步骤 1、语音信号的录入

《语音信号滤波去噪》word版

一、设计的目的和意义 数字滤波器和快速傅立叶变换(FFT)等是语音信号数字处理的理论和技术基础,是20世纪60年代形成的一系列数字信号处理的理论和算法。在数字信号处理中,滤波器的设计占有极其重要的地位。而其中,FIR数字滤波器和IIR数字滤波器是重要组成部分。Matlab具有功能强大、简单易学、编程效率高等特点,深受广大科技工作者的喜爱。特别是Matlab中还具有信号分析工具箱,所以对于使用者,不需要具备很强的编程能力,就可以方便地进行信号分析、处理和设计。利用Matlab中的信号处理工具箱,可以快速有效的设计各种数字滤波器。本论文基于Matlab语音信号处理的设计与实现,综合运用数字信号处理的相关理论知识,对加噪声语音信号进行时域、频域分析并滤波。而后通过理论推导得出相应结论,再利用Matlab作为编程工具进行计算机实现工作。 本次课程设计的课题为《基于DSP的语音信号滤波去噪》,运用麦克风采集一段语音信号,绘制波形并观察其频谱,给定相应技术指标,用脉冲响应不变法设计的一个满足指标的巴特沃斯IIR滤波器,对该语音信号进行滤波去噪处理,比较滤波前后的波形和频谱并进行分析,根据结果和学过的理论得出合理的结论。 二、设计原理: 2.1 巴特沃斯滤波器 巴特沃斯滤波器是电子滤波器的一种。巴特沃斯滤波器的特点是通频带的频率响应曲线最平滑。巴特沃斯滤波器的特性是通频带内的频率响应曲线最大限度平坦,没有起伏,而在组频带则逐渐下降为零。在振幅的对数对角频率的波得图上,从某一边界角频率开始,振幅随着角频率的增加而逐步减少,趋向负无穷大。 其振幅平方函数具有如2-1式:

(2-1) 式中,N为整数,称为滤波器的阶数,N越大,通带和阻带的近似性越好,过渡带也越陡。如下图2.1所示: 图2.1 巴特沃兹filter 振幅平方函数 过渡带:通带→阻带间过渡的频率范围,Ω c :截止频率。 理想滤波器的过渡带为Ω,阻带|H(jΩ)|=0,通带内幅度|H (jΩ)|=常数,H(jΩ)线性相位。通带内,分母Ω/Ω c <1,相应(Ω /Ω c )2N随N的增加而趋于0,A(Ω2)→1,在过渡带和阻带,Ω/ Ω c >1,随N的增加,Ω e /Ω c >>1,所以A(Ω2)快速下降。 Ω=Ω c 时,,幅度衰减,相当于3bd衰减点。振幅平方函数的极点可写成如式2-2:

基于MATLAB的语音信号滤波处理

基于MATLAB的语音信号滤波处理 题目:基于MATLAB的语音信号滤波处理 课程:数字信号处理 学院:电气工程学院 班级: 学生: 指导教师: 二O一三年十二月

目录CONTENTS 摘要 一、引言 二、正文 1.设计要求 2.设计步骤 3.设计内容 4.简易GUI设计 三、结论 四、收获与心得 五、附录

一、引言 随着Matlab仿真技术的推广,我们可以在计算机上对声音信号进行处理,甚至是模拟。通过计算机作图,采样,我们可以更加直观的了解语音信号的性质,通过matlab编程,调用相关的函数,我们可以非常方便的对信号进行运算和处理。 二、正文 2.1 设计要求 在有噪音的环境中录制语音,并设计滤波器去除噪声。 2.2 设计步骤 1.分析原始信号,画出原始信号频谱图及时频图,确定滤波器类型及相关指标; 2.按照类型及指标要求设计出滤波器,画出滤波器幅度和相位响应,分析该滤波器是否符合要求; 3.用所设计的滤波器对原始信号进行滤波处理,画出滤波后信号的频谱图及时频图; 4.对滤波前的信号进行分析比对,评估所设计滤波器性能。 2.3 设计内容 1.原始信号分析

分析信号的谱图可知,噪音在1650HZ和3300HZ附近的能量较高,而人声的能量基本位于1000HZ以下。因此,可以设计低通滤波器对信号进行去噪处理。 2.IIR滤波器设计 用双线性变换法分别设计了巴特沃斯低通滤波器和椭圆低通滤波器和带阻滤波器: ①巴特沃斯滤波器 fp=800;fs=1300;rs=35;rp=0.5; 程序代码如下: fp=800;fs=1300;rs=35;rp=0.5;Fs=44100; wp=2*Fs*tan(2*pi*fp/(2*Fs));ws=2*Fs*tan(2*pi*fs/(2*Fs)); [n,wn]=buttord(wp,ws,rp,rs,'s'); [b,a]=butter(n,wn,'s'); [num,den]=bilinear(b,a,Fs); [h,w]=freqz(num,den,512,Fs);

语音信号的处理与滤波

广西工学院 数字信号处理课程设计设计题目:语音信号的处理与滤波 系别: 学号: 姓名: 班级: 指导教师: 完成日期:

目录 1. 摘要 (3) 2.MATLAB简介 (3) 3.设计目的 (4) 4.设计内容 (4) 5.设计原理 (4) 6.设计步骤 (5) 7.总结与分析 (10) 8.参考资料 (10)

摘要 本课题分析了数字信号处理课程的重要性及特点,可以帮助理解与掌握课程中的基本概念、基本原理、基本分析方法;并利用MATLAB对语音信号进行分析和处理,要求采集语音信号后,在MATLAB软件平台进行频谱分析。用设计的数字滤波器对语音信号进行了滤波 MATLAB简介 MATLAB 是一种对技术计算高性能的语言。它集成了计算,可视化和编程于一个易用的环境中,在此环境下,问题和解答都表达为我们熟悉的数学符号。典型的应用有: ?数学和计算 ?算法开发 ?建模,模拟和原形化 ?数据分析,探索和可视化 ?科学与工程制图 ?应用开发,包括图形用户界面的建立 MATLAB是一个交互式的系统,其基本数据元素是无须定义维数的数组。这让你能解决很多技术计算的问题,尤其是那些要用到矩阵和向量表达式的问题。而要花的时间则只是用一种标量非交互语言(例如C或Fortran)写一个程序的时间的一小部分。 . 名称“MATLAB”代表matrix laboratory(矩阵实验室)。MATLAB最初是编写来提供给对由LINPACK和EINPACK工程开发的矩阵软件简易访问的。今天,MATLA B使用由LAPACK和ARPACK工程开发的软件,这些工程共同表现了矩阵计算的软件中的技术发展。 MATLAB已经与许多用户输入一同发展了多年。在大学环境中,它是很多数学类、工程和科学类的初等和高等课程的标准指导工具。在工业上,MATLAB是高产研究、开发和分析所选择的工具。 MATLAB以一系列称为工具箱的应用指定解答为特征。对多数用户十分重要的是,工具箱使你能学习和应用专门的技术。工具箱是是MATLAB函数(M-文件)的全面的综合,这些文件把MATLAB的环境扩展到解决特殊类型问题上。具有可用工具箱的领域有:信号处理,控制系统神经网络,模糊逻辑,小波分析,模拟等等。

:基于MATLAB的IIR滤波器的语音信号去噪.

滤波器设计在数字信号处理中占有极其重要的地位,本次课程设计主要是录制一段语音信号对其进行加噪处理,然后利用IIR低通滤波器对加有随机噪声的语音信号进行滤波处理及时频谱分析,画出滤波之后的频谱图与时域波形,并对信号滤波处理前后进行分析比较,分析信号的变化。通过对对所设计滤波器的仿真和频率特性分析,由仿真结果可以看出,所设计的滤波器能够实现对语音信号的语音有效去噪,并对滤波前后的语音信号进行对比。 关键词:去噪;滤波器;MATLAB

一语音信号去噪的设计任务................................................................................................ 错误!未定义书签。二语音信号去噪的基本原理. (3) 2.1 数字滤波器的基本设计方法 (3) 2.2 双线性变换法 (4) 2.3数字滤波器设计基本思想 (5) 2.4 数字滤波器的设计步骤 (6) 2.5采样定理 (7) 三基于MATLAB的仿真结果及结果分析 (10) 3.1 IIR高通滤波器的仿真 (10) 3.2 原始语音信号的录制 (10) 3.3 语音信号的时频域分析 (11) 3.4 加随机噪声后的时频域分析 (12) 3.5 滤波前后的时频域比较 (15) 总结 (17) 参考文献 (18) 致谢 (19) 附录 (20)

一 基本原理 1.1 数字滤波器的基本设计方法 IIR 数字滤波器的设计一般有两种方法:一个是借助模拟滤波器的设计方法进行。其设计步骤是,先设计模拟滤波器,再按照某种方法转换成数字滤波器。这种方法比较容易一些,因为模拟滤波器的设计方法已经非常成熟,不仅有完整的设计公式,还有完善的图表供查阅;另外一种直接在频率或者时域内进行,由于需要解联立方程,设计时需要计算机做辅助设计。其设计步骤是:先设计过渡模拟滤波器得到系统函数)(s H a ,然后将)(s H a 按某种方法转换成数字滤波器的系统函数)(z H [1]。为了保证转换后的)(z H 稳定且满足技术指标要求,对转换关系提出两点要求: (1)因果稳定的模拟滤波器转换成数字滤波器,仍是因果稳定的。 (2)数字滤波器的频率相应模仿模拟滤波器的频响特性,s 平面的虚轴映射为z 平面的单位圆,相应的频率之间呈线性关系。 利用模拟滤波器成熟的理论设计IIR 数字滤波器的过程是: (1)确定数字低通滤波器的技术指标:通带边界频率p ω、通带最大衰减p α、阻带截止频率s ω、阻带最小衰减s α。 (2)将数字低通滤波器的技术指标转换成相应的模拟低通滤波器的技术指标。 (3)按照模拟低通滤波器的技术指标设计过渡模拟低通滤波器。 (4)用所选的转换方法,将模拟滤波器)(s H a 转换成数字低通滤波器系统函数)(z H 。 IIR 数字滤波器的设计流程图2-1如下: 变换 Ω Ω=g(ω ) 变换 S=f (Z ) 图2-1 IIR 数字滤波器的设计步骤流程图[1] 成熟的模拟滤波器设计方法主要有脉冲响应不变法和双线性变换法。 模拟滤波器 技术指标 数字滤波器 技术指标 模拟滤波器 设计方法 模拟滤波器 )(S Ha 数字滤波器 )(Z H

matlab语音识别系统(源代码)18676

(威海)《智能仪器》课程设计 题目: MATLAB实现语音识别功能班级: 学号: 姓名: 同组人员: 任课教师: 完成时间:2012/11/3

目录 一、设计任务及要求 (1) 二、语音识别的简单介绍 语者识别的概念 (2) 特征参数的提取 (3) 用矢量量化聚类法生成码本 (3) 的说话人识别 (4) 三、算法程序分析 函数关系 (4) 代码说明 (5) 函数mfcc (5) 函数disteu (5) 函数vqlbg (6) 函数test (6) 函数testDB (7) 函数train (8) 函数melfb (8) 四、演示分析 (9) 五、心得体会 (11) 附:GUI程序代码 (12)

一、设计任务及要求 用MATLAB实现简单的语音识别功能; 具体设计要求如下: 用MATLAB实现简单的数字1~9的语音识别功能。 二、语音识别的简单介绍 基于VQ的说话人识别系统,矢量量化起着双重作用。在训练阶段,把每一个说话者所提取的特征参数进行分类,产生不同码字所组成的码本。在识别(匹配)阶段,我们用VQ方法计算平均失真测度(本系统在计算距离d时,采用欧氏距离测度),从而判断说话人是谁。 语音识别系统结构框图如图1所示。 图1 语音识别系统结构框图 语者识别的概念 语者识别就是根据说话人的语音信号来判别说话人的身份。语音是人的自然属性之一,由于说话人发音器官的生理差异以及后天形成的行为差异,每个人的语音都带有强烈的个人色彩,这就使得通过分析语音信号来识别说话人成为可能。用语音来鉴别说话人的身份有着许多独特的优点,如语音是人的固有的特征,不会丢失或遗忘;语音信号的采集方便,系统设备成本低;利用电话网络还可实现远程客户服务等。因此,近几年来,说话人识别越来越多的受到人们的重视。与其他生物识别技术如指纹识别、手形识别等相比较,说话人识别不仅使用方便,而且属于非接触性,容易被用户接受,并且在已有的各种生物特征识别技术中,是唯一可以用作远程验证的识别技术。因此,说话人识别的应用前景非常广泛:今天,说话人识别技术已经关系到多学科的研究领域,不同领域中的进步都对说话人识别的发展做出了贡献。说话人识别技术是集声学、语言学、计算机、信息处理和人工智能等诸多领域的一项综合技术,应用需求将十分广阔。在吃力语音信号的时候如何提取信号中关键的成分尤为重要。语音信号的特征参数的好坏直接导致了辨别的准确性。

基于MATLAB的FIR滤波器语音信号去噪设计

基于MATLAB的FIR滤波器语音信号去噪设计

****************** 实践教学 ****************** 兰州理工大学 计算机与通信学院 《信号处理》课程设计题目:基于MATLAB的FIR滤波器语音信号去噪

摘要 随着信息技术的不断发展,现代信号处理正向着数字化发展,研究语音信号的滤波设计也成了现代信息处理的基本内容。本次课程设计主要内容是基于MATLAB的FIR滤波器语音信号去噪。主要运用麦克风采集一段语音信号,对其进行了时域分析和频谱分析,分析语音信号的特性,并对语音信号加入了随机噪声,采用凯塞(Kaiser)窗函数法设计了一个FIR 低通滤波器,然后对加噪的语音信号进行滤波处理。最后对滤波前后的语音信号的时域和频域特性进行对比。 关键词:MATLAB;语音信号;FIR滤波器;凯塞(Kaiser)窗

目录 第一章语音信号采样和滤波器设计的基本原理1 1.1语音信号采样的基本原理 (1) 1.1.1 采样定理 (1) 1.1.2 采样频率 (1) 1.2数字滤波器的基本理论和设计的基本原理2 1.2.1 数字滤波器的类型 (2) 1.2.2 窗口设计法 (3) 第二章语音信号去噪的总体设计 (6) 2.1 语音信号去噪的设计流程图 (6) 2.2 语音信号去噪的设计流程的介绍 (6) 第三章语音信号去噪的仿真实现及结果分析 8 3.1 语音信号的采集 (8) 3.2 加噪语音信号的频谱分析 (9) 3.3 语音信号的滤波去噪 (10) 3.4 语音信号去噪的结果分析 (12) 总结 (13) 参考文献 (14) 附录 (15) 致谢 (20)

基于MATLAB的特定人语音识别算法设计毕业设计

本科毕业设计 基于MATLAB的特定人语音识别算法设计

摘要 语言是人类交换信息最方便、最快捷的一种方式,在高度发达的信息社会中,用数字化的方法进行语音的传送、存储、识别、合成和增强等是整个数字化通信网中最重要、最基本的组成部分之一。而在随着科技技术的发展的今天,除了人与人之间的自然语言通信之外,人与机或机器与机器之间也开始使用语言。也就是因为如此,需要涉及到语音识别技术。为了解决机器能“听懂”人类的语言,在科技如此迅猛发展的今天,语音识别技术一直受到各国科学界的关注,其对计算机发展和社会生活的重要性也日益凸显出来。 在孤立字语音识别中,如语音密码锁,汽车控制等领域,都运用到了特定人语音识别技术,也就是DTW算法,相对于HMM算法,DTW算法具有简单操作。在相同环境下,两者识别效果相差不大,但是HMM算法要复杂得多,主要体现在HMM算法在训练阶段需要提供大量的语音数据,而DTW算法则不需要额外的计算。所以在特定人语音识别当中,DTW算法被广泛使用。 在本次设计中,将运用到MATLAB平台来对语音信号进行处理及识别。相对于C 语言而言,MATLAB平台更能给用户提供一个简单易懂的代码分析窗口。而且在个性化设计中,MATLAB可以为用户提供一个人性化界面--GUI。所以,此次设计,通过MATLAB 平台建立一个GUI界面,接着对一组语音信号的输入进行预处理及端点检测,提取特征参数(MFCC),形成参考模块。然后再对一组相同的语音信号输入进行同样的操作作为测试模块,与参考模块进行DTW算法进行匹配,输出匹配后的识别结果。 关键词:MATLAB GUI 端点检测MFCC DTW

弹拨音乐信号滤波去噪—三角形窗设计的FIR滤波器

弹拨音乐滤波去噪 ——使用三角窗设计的FIR滤波器 学生姓名:夏霞指导老师:胡双红 摘要本课程设计主要是通过使用三角形窗设计一个FIR滤波器以对弹拨音乐信号进行滤波去噪处理。本设计首先通过麦克风采集一段弹拨音乐信号,依据对该信号的频谱分析,给定相关指标。以MATLAB软件为平台,采用三角形窗设计满足指标的FIR滤波器,以该音乐信号进行滤波去噪处理。通过对比滤波前后的波形图,深入了解滤波器的基本方法。通过程序调试及完善,该设计基本满足设计要求。 关键词滤波去噪;FIR滤波器;三角形窗函数;MATLAB

1 引言 数字滤波器是一种用来过滤时间离散信号的数字系统,它是通过对抽样数据进行数学处理来达到频域滤波的目的。随着现代通信的数字化,数字滤波器变得更加重要。数字滤波器的种类很多,但总的来说可以分成两大类,一类是经典滤波器,另一类可称为现代滤波器。从滤波特性方面考虑,数字滤波器可分成数字高通、数字低通、数字带通和数字带阻等滤波器。从实现方法上考虑,将滤波器分成两种,一种称为无限脉冲响应滤波器,简称IIR(Infinite Impulse Response)滤波器,另一种称为FIR(Finite Impulse Response)滤波器[1]。设计FIR数字滤波器的方法有窗函数法、频率采样法和等波纹最佳逼近法等。 1.1 课程设计目的 数字信号处理(Digital Signal Processing,简称DSP)是一门涉及许多学科而又广泛应用于许多领域的新兴学科。20世纪60年代以来,随着计算机和信息技术的飞速发展,数字信号处理技术应运而生并得到迅速的发展。在过去的二十多年时间里,数字信号处理已经在通信等领域得到极为广泛的应用。数字信号处理是利用计算机或专用处理设备,以数字形式对信号进行采集、变换、滤波、估值、增强、压缩、识别等处理,以得到符合人们需要的信号形式。 在本次课程设计中,最主要的设计是设计FIR滤波器,FIR滤波器的设计方法主要分为两类:第一类是基于逼近理想滤波器器特性的方法包括窗函数法、频率采样法、和等波纹最佳逼近法;第二类是最优设计法。 本次的课程设计主要采用的是第一类设计方法,是利用三角形窗函数法设计FIR滤波器对一段语音进行滤波去噪,通过这一过程,对滤波前后波形进行对比分析得到结论。此课程设计比较简单,主要是将书本中的知识运用到现实中,并且根据自己对设计题目的理解,运用软件编写出程序实现这一设计,也是我们对数字信号处理的原理进行验证的一个过程。对此,也可以加深我们对所学知识的理解,培养我们的动手能力。 1.2课程设计的要求 (1)通过利用各种不同的开发工具实现模拟信号数字化、信道编解码、基带数字信号编解码、数字信号的调制解调和语音信号的滤波去噪等课题,掌握数字信号的分析方法

基于matlab的语音识别系统

机电信息工程学院专业综合课程设计 系:信息与通信工程 专业:通信工程 班级:081班 设计题目:基于matlab的语音识别系统 学生姓名: 指导教师: 完成日期:2011年12月27日

一.设计任务及要求 1.1设计任务 作为智能计算机研究的主导方向和人机语音通信的关键技术,语音识别技术一直受到各国科学界的广泛关注。以语音识别开发出的产品应用领域非常广泛,有声控电话交换、语音拨号系统、信息网络查询、家庭服务、宾馆服务、旅行社服务系统、订票系统、声控智能玩具、医疗服务、银行服务、股票查询服务、计算机控制、工业控制、语音通信系统、军事监听、信息检索、应急服务、翻译系统等,几乎深入到社会的每个行业、每个方面,其应用和经济社会效益前景非常广泛。本次任务设计一个简单的语音识别系。 1.2设计要求 要求:使用matlab软件编写语音识别程序 二.算法方案选择 2.1设计方案 语音识别属于模式识别范畴,它与人的认知过程一样,其过程分为训练和识别两个阶段。在训练阶段,语音识别系统对输入的语音信号进行学习。学习结束后,把学习内容组成语音模型库存储起来;在识别阶段,根据当前输入的待识别语音信号,在语音模型库中查找出相应的词义或语义。 语音识别系统与常规模式识别系统一样包括特征提取、模式匹配、模型库等3个基本单元,它的基本结构如图1所示。 图1 语音识别系统基本结构图 本次设计主要是基于HMM模型(隐马尔可夫模型)。这是在20世纪80年代引入语音识别领域的一种语音识别算法。该算法通过对大量语音数据进行数据统计,建立识别词条的统计模型,然后从待识别语音信号中提取特征,与这些模

型进行匹配,通过比较匹配分数以获得识别结果。通过大量的语音,就能够获得一个稳健的统计模型,能够适应实际语音中的各种突发情况。并且,HMM算法具有良好的识别性能和抗噪性能。 2.2方案框图 图2 HMM语音识别系统 2.3隐马尔可夫模型 HMM过程是一个双重随机过程:一重用于描述非平稳信号的短时平稳段的统计特征(信号的瞬态特征);另一重随机过程描述了每个短时平稳段如何转变到下一个短时平稳段,即短时统计特征的动态特性(隐含在观察序列中)。人的言语过程本质上也是一个双重随机过程,语音信号本身是一个可观测的时变列。可见,HMM合理地模仿了这一过程,是一种较为理想的语音信号模型。其初始状态概率向量π,状态转移概率矩阵向量A,以及概率输出向量B一起构成了HMM的3个特征参量。HMM 模型通常表示成λ={π,A,B}。 2.4HMM模型的三个基本问题 HMM模型的核心问题就是解决以下三个基本问题: (1)识别问题:在给定的观测序列O和模型λ=(A,B,π)的条件下,如何有效地计算λ产生观测序列O的条件概率P(O︱λ)最大。常用的算法是前后向算法,它可以使其计算量降低到N2T次运算。 (2)最佳状态链的确定:如何选择一个最佳状态序列Q=q1q2…qT,来解释观察序列O。常用的算法是Viterbi算法。 (3)模型参数优化问题:如何调整模型参数λ=(A,B,π),使P(O︱λ)最大:这是三个问题中最难的一个,因为没有解析法可用来求解最大似然模型,所以只能使用迭代法(如Baum-Welch)或使用最佳梯度法。 第一个问题是评估问题,即已知模型λ=(A,B,π)和一个观测序列O,如何计算由该模型λ产生出该观测序列O的概率,问题1的求解能够选择出与给定的观测序列最匹配的HMM模型。 第二个问题力图揭露模型中隐藏着的部分,即找出“正确的”状态序列,这是一个典型的估计问题。

相关文档
最新文档