谱减法的语音信号增强

谱减法的语音信号增强
谱减法的语音信号增强

语音信号处理与及其MATLAB实现分析

目录 摘要 (2) 第一章绪论 (3) 1.1 语音课设的意义 (3) 1.2 语音课设的目的与要求 (3) 1.3 语音课设的基本步骤 (3) 第二章设计方案论证 (5) 2.1 设计理论依据 (5) 2.1.1 采样定理 (5) 2.1.2 采样频率 (5) 2.1.3 采样位数与采样频率 (5) 2.2 语音信号的分析及处理方法 (6) 2.2.1 语音的录入与打开 (6) 2.2.2 时域信号的FFT分析 (6) 2.2.3 数字滤波器设计原理 (7) 2.2.4 数字滤波器的设计步骤 (7) 2.2.5 IIR滤波器与FIR滤波器的性能比较 (7) 第三章图形用户界面设计 (8) 3.1 图形用户界面概念 (8) 3.2 图形用户界面设计 (8) 3.3 图形用户界面模块调试 (9) 3.3.1 语音信号的读入与打开 (9) 3.3.2 语音信号的定点分析 (9) 3.3.3 N阶高通滤波器 (11) 3.3.4 N阶低通滤波器 (12) 3.3.5 2N阶带通滤波器 (13) 3.3.6 2N阶带阻滤波器 (14) 3.4 图形用户界面制作 (15) 第四章总结 (18) 附录 (19) 参考文献 (24)

摘要 数字信号处理是将信号以数字方式表示并处理的理论和技术。数字信号处理与模拟信号处理是信号处理的子集。 数字信号处理的目的是对真实世界的连续模拟信号进行测量或滤波。因此在进行数字信号处理之前需要将信号从模拟域转换到数字域,这通常通过模数转换器实现。而数字信号处理的输出经常也要变换到模拟域,这是通过数模转换器实现的。 数字信号处理的算法需要利用计算机或专用处理设备如数字信号处理器(DSP)和专用集成电路(ASIC)等。数字信号处理技术及设备具有灵活、精确、抗干扰强、设备尺寸小、造价低、速度快等突出优点,这些都是模拟信号处理技术与设备所无法比拟的。 数字信号处理的核心算法是离散傅立叶变换(DFT),是DFT使信号在数字域和频域都实现了离散化,从而可以用通用计算机处理离散信号。而使数字信号处理从理论走向实用的是快速傅立叶变换(FFT),FFT的出现大大减少了DFT的运算量,使实时的数字信号处理成为可能、极大促进了该学科的发展。 MATLAB是矩阵实验室(Matrix Laboratory)的简称,和Mathematica、Maple 并称为三大数学软件。它在数学类科技应用软件中在数值计算方面首屈一指。MATLAB可以进行矩阵运算、绘制函数和数据、实现算法、创建用户界面、连接其他编程语言的程序等,主要应用于工程计算、控制设计、信号处理与通讯、图像处理、信号检测、金融建模设计与分析等领域。 MATLAB的基本数据单位是矩阵,它的指令表达式与数学、工程中常用的形式十分相似,故用MATLAB来解算问题要比用C,FORTRAN等语言完相同的事情简捷得多,并且mathwork也吸收了像Maple等软件的优点,使MATLAB成为一个强大的数学软件。在新的版本中也加入了对C,FORTRAN,C++ ,JAVA的支持。可以直接调用,用户也可以将自己编写的实用程序导入到MATLAB函数库中方便自己以后调用,此外许多的MATLAB爱好者都编写了一些经典的程序,用户可以直接进行下载就可以用。

基于Matlab的语音信号处理与分析

系(院)物理与电子工程学院专业电子信息工程题目语音信号的处理与分析 学生姓名 指导教师 班级 学号 完成日期:2013 年5 月 目录 1 绪论.............................................................................................................. 错误!未定义书签。 1.1课题背景及意义................................................................................. 错误!未定义书签。 1.2国内外研究现状................................................................................. 错误!未定义书签。 1.3本课题的研究内容和方法................................................................. 错误!未定义书签。 1.3.1 研究内容................................................................................ 错误!未定义书签。 1.3.2 开发环境................................................................................ 错误!未定义书签。 2 语音信号处理的总体方案............................................................................ 错误!未定义书签。 2.1 系统基本概述.................................................................................... 错误!未定义书签。 2.2 系统基本要求与目的........................................................................ 错误!未定义书签。 2.3 系统框架及实现................................................................................ 错误!未定义书签。 2.3.1 语音信号的采样.................................................................... 错误!未定义书签。 2.3.2 语音信号的频谱分析............................................................ 错误!未定义书签。 2.3.3 音乐信号的抽取.................................................................... 错误!未定义书签。 2.3.4 音乐信号的AM调制.............................................................. 错误!未定义书签。 2.3.5 AM调制音乐信号的同步解调............................................... 错误!未定义书签。 2.4系统设计流程图................................................................................. 错误!未定义书签。 3 语音信号处理基本知识................................................................................ 错误!未定义书签。 3.1语音的录入与打开............................................................................. 错误!未定义书签。 3.2采样位数和采样频率......................................................................... 错误!未定义书签。 3.3时域信号的FFT分析......................................................................... 错误!未定义书签。 3.4切比雪夫滤波器................................................................................. 错误!未定义书签。 3.5数字滤波器设计原理......................................................................... 错误!未定义书签。 4 语音信号实例处理设计................................................................................ 错误!未定义书签。 4.1语音信号的采集................................................................................. 错误!未定义书签。

在噪声环境下语音信号的增强

clear clc %在噪声环境下语音信号的增强 %语音信号为读入的声音文件 %噪声为正态随机噪声 sound=wavread('c12345.wav'); count1=length(sound); noise=0.05*randn(1,count1); for i=1:count1 signal(i)=sound(i); end for i=1:count1 y(i)=signal(i)+noise(i); end %在小波基'db3'下进行一维离散小波变换[coefs1,coefs2]=dwt(y,'db3'); %[低频高频] count2=length(coefs1); count3=length(coefs2); energy1=sum((abs(coefs1)).^2); energy2=sum((abs(coefs2)).^2); energy3=energy1+energy2; for i=1:count2 recoefs1(i)=coefs1(i)/energy3; end for i=1:count3 recoefs2(i)=coefs2(i)/energy3; end %低频系数进行语音信号清浊音的判别 zhen=160; count4=fix(count2/zhen); for i=1:count4 n=160*(i-1)+1:160+160*(i-1); s=sound(n); w=hamming(160); sw=s.*w; a=aryule(sw,10); sw=filter(a,1,sw); sw=sw/sum(sw); r=xcorr(sw,'biased');

对语音信号进行分析及处理资料

一、设计目的 1.进一步巩固数字信号处理的基本概念、理论、分析方法和实现方法;使自身对信号的采集、处理、传输、显示和存储等有一个系统的掌握和理解; 2.增强应用Matlab语言编写数字信号处理的应用程序及分析、解决实际问题的能力; 3.培养自我学习的能力和对相关课程的兴趣; 二、设计过程 1、语音信号的采集 采样频率,也称为采样速度或者采样率,定义了每秒从连续信号中提取并组成离散信号的采样个数,它用赫兹(Hz)来表示。 采样位数可以理解为声卡处理声音的解析度。这个数值越大,解析度就越高,录制和回放的声音就越真实 采样定理又称奈奎斯特定理,在进行模拟/数字信号的转换过程中,当采样频率fs不小于信号中最高频率fm的2倍时,采样之后的数字信号完整地保留了原始信号中的信息,一般实际应用中保证采样频率为信号最高频率的5~10倍。 利用Windows下的录音机,录制了一段发出的声音,内容是“数字信号”,时间在3 s内。接着在D盘保存为WAV格式,然后在Matlab软件平台下.利用函数wavread对语音信号进行采样,并记录下了采样频率和采样点数,在这里我们还通过函数sound引入听到采样后自己所录的一段声音。 [x1,fs,bits]=wavread('E:\数字信号.wav'); %读取语音信号的数据,赋给变量x1,返回频率fs 44100Hz,比特率为16 。 2 、语音信号的频谱分析 (1)首先画出语音信号的时域波形; 程序段: x=x1(60001:1:120000); %截取原始信号60000个采样点

plot(x) %做截取原始信号的时域图形 title('原始语音采样后时域信号'); xlabel('时间轴 n'); ylabel('幅值 A'); (2)然后用函数fft 对语音号进行快速傅里叶变换,得到信号的频谱特性; y1=fft(x,6000); %对信号做N=6000点FFT 变换 figure(2) subplot(2,1,1),plot(k,abs(y1)); title('|X(k)|'); ylabel('幅度谱'); subplot(2,1,2),plot(k,angle(y1)); title('arg|X(k)|'); ylabel('相位谱'); (3)产生高斯白噪声,并且对噪声进行一定的衰减,然后把噪声加到信号中,再次对信号进行频谱特性分析,从而加深对频谱特性的理解; d=randn(1,60000); %产生高斯白噪声 d=d/100; %对噪声进行衰减 x2=x+d; %加入高斯白噪声 3、设计数字滤波器 (1)IIR 低通滤波器性能指标通带截止频Hz f c 1000=,阻带截止频率 Hz f st 1200=,通带最大衰减dB 11=δ,阻带最小衰减dB 1002=δ。 (2)FIR 低通滤波器性能指标通带截止频率Hz f c 1000=,阻带截止频率 Hz f st 1200=, 通带衰减1δ≤1dB ,阻带衰减 2δ≥ 100dB 。 (3)IIR 高通滤波器的设计指标,Hz f z 1000=,Hz f p 2000=,阻带最小衰减dB A s 30=,通带最大衰减dB A P 1=。 (4)(4)FIR 高通滤波器的设计指标,Hz f z 1000=,Hz f p 2000=,阻带最小衰减dB A s 50=,通带最大衰减dB A P 1=。 (5)用自己设计的各滤波器分别对采集的信号进行滤波,在Matlab 中,FIR 滤波器利用函数fftfilt 对信号进行滤波,IIR 滤波器利用函数filter 对信号进行滤波。比较滤波前后语音信号的波形及频谱,在一个窗口同时画出滤波前后

基于MATLAB的语音信号处理系统设计(程序+仿真图)--毕业设计

语音信号处理系统设计 摘要:语音信号处理是研究用数字信号处理技术对语音信号进行处理的一门学科。语音信号处理的目的是得到某些参数以便高效传输或存储,或者是用于某种应用,如人工合成出语音、辨识出讲话者、识别出讲话内容、进行语音增强等。本文简要介绍了语音信号采集与分析以及语音信号的特征、采集与分析方法,并在采集语音信号后,在MATLAB 软件平台上进行频谱分析,并对所采集的语音信号加入干扰噪声,对加入噪声的信号进行频谱分析,设计合适的滤波器滤除噪声,恢复原信号。利用MATLAB来读入(采集)语音信号,将它赋值给某一向量,再将该向量看作一个普通的信号,对其进行FFT变换实现频谱分析,再依据实际情况对它进行滤波,然后我们还可以通过sound命令来对语音信号进行回放,以便在听觉上来感受声音的变化。 关键词:Matlab,语音信号,傅里叶变换,滤波器 1课程设计的目的和意义 本设计课题主要研究语音信号初步分析的软件实现方法、滤波器的设计及应用。通过完成本课题的设计,拟主要达到以下几个目的: 1.1.了解Matlab软件的特点和使用方法。 1.2.掌握利用Matlab分析信号和系统的时域、频域特性的方法; 1.3.掌握数字滤波器的设计方法及应用。 1.4.了解语音信号的特性及分析方法。 1.5.通过本课题的设计,培养学生运用所学知识分析和解决实际问题的能力。 2 设计任务及技术指标 设计一个简单的语音信号分析系统,实现对语音信号时域波形显示、进行频谱分析,

利用滤波器滤除噪声、对语音信号的参数进行提取分析等功能。采用Matlab设计语言信号分析相关程序,并且利用GUI设计图形用户界面。具体任务是: 2.1.采集语音信号。 2.2.对原始语音信号加入干扰噪声,对原始语音信号及带噪语音信号进行时频域分析。 2.3.针对语音信号频谱及噪声频率,设计合适的数字滤波器滤除噪声。 2.4.对噪声滤除前后的语音进行时频域分析。 2.5.对语音信号进行重采样,回放并与原始信号进行比较。 2.6.对语音信号部分时域参数进行提取。 2.7.设计图形用户界面(包含以上功能)。 3 设计方案论证 3.1语音信号的采集 使用电脑的声卡设备采集一段语音信号,并将其保存在电脑中。 3.2语音信号的处理 语音信号的处理主要包括信号的提取播放、信号的重采样、信号加入噪声、信号的傅里叶变换和滤波等,以及GUI图形用户界面设计。 Ⅰ.语音信号的时域分析 语音信号是一种非平稳的时变信号,它携带着各种信息。在语音编码、语音合成、语音识别和语音增强等语音处理中无一例外需要提取语音中包含的各种信息。语音信号分析的目的就在与方便有效的提取并表示语音信号所携带的信息。语音信号分析可以分为时域和变换域等处理方法,其中时域分析是最简单的方法。 Ⅱ.语音信号的频域分析 信号的傅立叶表示在信号的分析与处理中起着重要的作用。因为对于线性系统来说,可以很方便地确定其对正弦或复指数和的响应,所以傅立叶分析方法能完善地解决许多信号分析和处理问题。另外,傅立叶表示使信号的某些特性变得更明显,因此,它能更

语音信号特征的提取

语音信号特征的提取 摘要 随着计算机技术的发展,语音交互已经成为人机交互的必要手段,语音特征参数的精确度直接影响着语音合成的音质和语音识别的准确率。因此语音信号参数提取是语音信号处理研究中一项非常有意义的工作。 本文采用Matlab软件提取语音信号特征参数,首先对语音信号进行数字化处理,其次,进行预处理,包括预加重、加窗和分帧,本文讨论了预处理中各种参数的选择,以使信号特征提取更加准确。第三,讨论了各种时域特征参数的算法,包括短时能量、短时过零率等。 关键词:语音信号, 特征参数, 提取, Matlab 目录 第一章绪论 1.1语音信号特征提取概况 1.1.1研究意义 语音处理技术广泛应用于语音通信系统、声控电话交换、数据查询、计算机控制、工业控制等领域,带有语音功能的计算机也将很快成为大众化产品,语音将可能取代键盘和鼠标成为计算机的主要输入手段,为用户界面带来一次飞跃。 语音信号特征的提取是语音信号处理的前提和基础,只有分析出可表示语音信号本质特征的参数,才有可能利用这些参数进行高效的语音通信和准确的语音识别,才能建立语音合成的语音库。因此语音信号参数提取是语音信号处理研究中一项非常有意义的工作。 1.1.2 发展现状 语音信号处理是一门综合性的学科,包括计算机科学、语音学、语言学、声学和数学等诸多领域的内容。它的发展过程中,有过两次飞跃。第一次飞跃是1907年电子管的发明和1920年无线电广播的出现,电子管放大器使很微弱的声

音也可以放大和定量测量,从而使电声学和语言声学的一些研究成果扩展到通信和广播部门;第二次飞跃是在20世纪70年代初,电子计算机和数字信号处理的发展使声音信号特别是语音信号,可以通过模数转换器(A/D)采样和量化转换为数字信号,这样就可以用数字计算方法对语音信号进行处理和加工,提高了语音信号处理的准确性和高效性。 语音信号处理在现代信息科学中的地位举足轻重,但它仍有些基础的理论问题和技术问题有待解决,这些难题如听觉器官的物理模型和数学表示及语音增强的技术理论等,目前还有待发展。 1.2 本课题研究内容 本文主要介绍语音信号处理的理论及Matlab的相关内容,然后从Matlab仿真角度验证了录音、预处理、提取语音信号时域特征参数,主要讨论了预处理中各种参数的选择,以使信号特征提取更加准确。再次讨论了各种时域特征参数的算法,包括短时能量、短时过零率等,介绍了各环节的不同软件实现方法。最后对基于Matlab的语音信号特征参数提取进行总结。 第二章Matlab简介 MATLAB是国际上仿真领域最权威、最实用的计算机工具。它是MathWork 公司于1984年推出,它以强大的科学计算与可视化功能、简单易用、开放式可扩展环境,特别是所附带的30多种面向不同领域的工具箱支持,使得它在许多科学领域中成为计算机辅助设计和分析、算法研究和应用开发的基本工具和首选平台。 2.1 发展概况 Matlab是Matrix Laboratory(矩阵实验室的缩写),最初由美国Cleve Moler 博士在70年代末讲授矩阵理论和数据分析等课程时编写的软件包Linpack与Eispack组成,旨在使应用人员免去大量经常重复的矩阵运算和基本数学运算等繁琐的编程工作。1984年成立的Math Works公司正式把Matlab推向市场,并从事Matlab的研究和开发。1990年,该公司推出了以框图为基础的控制系统仿真工具Simulink,它方便了系统的研究与开发,使控制工程师可以直接构造系统框图进行仿真,并提供了控制系统中常用的各种环节的模块库。1993年,Math Works 公司推出的Matlab4.0版在原来的基础上又作了较大改进,并推出了Windows版,

语音信号的短时分析

语音信号的短时分析 一、实验目的 1.在理论学习的基础上,进一步地理解和掌握语音信号短时分析的意义,短时时域分析的基本方法。 2.进一步理解和掌握语音信号短时平均能量函数及短时平均过零数的计算方法和重要 意义。 二、实验原理及方法 一定时宽的语音信号,其能量的大小随时间有明显的变化。其中清音段(以清音为主要成份的语音段),其能量比浊音段小得多。短时过零数也可用于语音信号分析中,发浊音时,其语音能量约集中于3kHz以下,而发清音时,多数能量出现在较高频率上,可认为浊音时具有较低的平均过零数,而清音时具有较高的平均过零数,因而,对一短时语音段计算其短时平均能量及短时平均过零数,就可以较好地区分其中的清音段和浊音段,从而可判别句中清、浊音转变时刻,声母韵母的分界以及无声与有声的分界。这在语音识别中有重要意义。 三、实验仪器 微型计算机,Matlab软件环境 四、实验内容 1.上机前用Matlab语言完成程序编写工作。 2.程序应具有加窗(分帧)、计算、以及绘制曲线等功能。 3.上机实验时先调试程序,通过后进行信号处理。 4.对录入的语音数据进行处理,并显示运行结果。 5.依据曲线对该语音段进行所需要的分析,并作出结论。

6.改变窗的宽度(帧长),重复上面的分析内容。 五、预习和实验报告要求 1.预习课本有关内容,理解和掌握短时平均能量函数及短时平均过零数函数的意义及其计算方法。 2.参考Matlab有关资料,设计并编写出具有上述功能的程序。 六、上机实验报告要求: 1.报告中,实验目的、实验原理、实验步骤、方法等格式和内容的要求与其它实验相同。 2.画出求得的、曲线,注明语音段和所用窗函数及其宽度。阐述所作分析和判断的过程,提出依据,得出判断结论。 七、思考题 1.语音信号短时平均能量及短时平均过零数分析的主要用途是什么? 2.窗的宽度(帧长)的改变,对的特性产生怎样的影响? 附: 所用语音信号文件名为one.wav Matlab编程实验步骤: 1.新建M文件,扩展名为“.m”,编写程序; 2.选择File/Save命令,将文件保存在F盘中; 3.在Command Window窗中输入文件名,运行程序; Matlab部分函数语法格式: 读wav文件:x=wavread(`filename`)

语音信号处理matlab实现

短时能量分析matlab源程序: x=wavread('4.wav'); %计算N=50,帧移=50时的语音能量 s=fra(50,50,x);%对输入的语音信号进行分帧,其中帧长50,帧移50 s2=s.^2;%一帧内各种点的能量 energy=sum(s2,2);%求一帧能量 subplot(2,2,1); plot(energy) xlabel('帧数'); ylabel('短时能量E'); legend('N=50'); axis([0,500,0,30]) %计算N=100,帧移=100时的语音能量 s=fra(100,100,x); s2=s.^2; energy=sum(s2,2); subplot(2,2,2); plot(energy) xlabel('帧数'); ylabel('短时能量E'); legend('N=100'); axis([0,300,0,30]) %计算N=400,帧移=400时的语音能量 s=fra(400,400,x); s2=s.^2; energy=sum(s2,2); subplot(2,2,3); plot(energy) xlabel('帧数'); ylabel('短时能量E'); legend('N=400'); axis([0,60,0,100]) %计算N=800,帧移=800时的语音能量 s=fra(800,800,x); s2=s.^2; energy=sum(s2,2); subplot(2,2,4); plot(energy) xlabel('帧数'); ylabel('短时能量E'); legend('N=800'); axis([0,30,0,200]) 分帧子函数: function f=fra(len,inc,x) %对读入语音分帧,len为帧长,inc为帧重叠样点数,x为输入语音数据 fh=fix(((size(x,1)-len)/inc)+1);%计算帧数 f=zeros(fh,len);%设一个零矩阵,行为帧数,列为帧长 i=1;n=1; while i<=fh %帧间循环 j=1; while j<=len %帧内循环 f(i,j)=x(n); j=j+1;n=n+1; end n=n-len+inc;%下一帧开始位置 i=i+1; end

基本语音增强方法

基本语音增强方法概述 摘要:语音增强是当今语音处理的一个非常重要的领域,本文主要介绍当今比较普遍的几种基于人耳掩蔽阈值的语音增强方法:谱减法,维纳滤波法,子空间方法等,并对它们的优缺点作简要论述。 关键词:语音增强、人耳掩蔽、谱减法、维纳滤波、子空间 现今时代的主流步伐将我们带向自动化方向,语音识别在这一背景下显得尤为重要。目前已经开发出好几款语音识别软件,但是如何较为精确地实现人耳的掩蔽效应下的语音增强,仍是大家着重解决的问题。它的首要目标就是在接收端尽可能从带噪语音信号中提取纯净的语音信号,改善其质量。目前已经出现了谱减法等一系列较为普遍的方法。本文将对这几种方法进行简要介绍。 一、语音的特性 语音信号是一种非平稳、时变的随机过程,其产生过程与发声器官的运动紧密相关。而发声器官的状态变化速度比声音振动的速度要缓慢得多,因此语音信号可以认为是短时平稳的。在一段短时间内其特性基本保持不变即相对稳定,从而可以应用平稳随机过程的分析方法来处理语音信号,并可以在语音增强中利用短时频谱的平稳特性。 人耳在嘈杂的环境中,仍然能够清晰地听到自己想听的内容,一个较弱的声音(被掩蔽音)的听觉感受被另一个较强的声音(掩蔽音)影响的现象称为人耳的“掩蔽效应”。被掩蔽音单独存在时的听阈分贝值,或者说在安静环境中能被人耳听到的纯音的最小值称为绝对闻阈。在进行机器语音识别的时候,由于干扰信号和目标信号的强度差别不大,导致机器无法识别。这时语音增强就显得特别重要了。 二、时域方法 此类方法主要依赖于语音生成模型(例如AR模型)的使用,需要提取模型参数(如基音周期、LPC系数等),经常使用迭代方法。这种方法的最大缺点就是如果实际噪声或语音与模型有较大的差别,或者由于某些原因使得提取语音参数较困难,则这方法较容易失败。这类方法常用到一些滤波器,如梳状滤波器、维纳滤波器、卡尔曼滤波器等。 (1)经典的维纳滤波法是根据Winer-Hopf 积分方程求出纯语音和混合音

语音信号处理试验教程

语音信号处理试验 实验一:语音信号时域分析 实验目的: (1)录制两段语音信号,内容是“语音信号处理”,分男女声。 (2)对语音信号进行采样,观察采样后语音信号的时域波形。 实验步骤: 1、使用window自带录音工具录制声音片段 使用windows自带录音机录制语音文件,进行数字信号的采集。启动录音机。录制一段录音,录音停止后,文件存储器的后缀默认为.Wav。将录制好文件保存,记录保存路径。男生女生各录一段保存为test1.wav和test2.wav。 图1基于PC机语音信号采集过程。 2、读取语音信号 在MATLAB软件平台下,利用wavread函数对语音信号进行采样,记住采样频率和采样点数。通过使用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,[N1,N2]),读取从N1到N2点的采样值放在向量y中。 3、编程获取语音信号的抽样频率和采样位数。 语音信号为test1.wav和test2.wav,内容为“语音信号处理”,两端语音保存到工作空间work文件夹下。在M文件中分别输入以下程序,可以分两次输入便于观察。 [y1,fs1,nbits1]=wavread('test1.wav') [y2,fs2,nbits2]=wavread('test2.wav') 结果如下图所示 根据结果可知:两端语音信号的采样频率为44100HZ,采样位数为16。 4、语音信号的时域分析 语音信号的时域分析就是分析和提取语音信号的时域参数。进行语音分析时,最先接触到并且夜市最直观的是它的时域波形。语音信

基于MATLAB的有噪声语音信号处理毕设

大学本科毕业设计论文 基于MATLAB的有噪声语音信号处理

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

Abstract ?Filterdesignin digital signal processingplaysan extre melyimportant role, FIR digital filters and IIR filter is an importan tpart of filter design.Matlab is powerful,easy to learn,programming efficiency,which was welcomed bythemajority ofsc ientists. Matlab alsohas a particular signalanalysis toolbox,it need nothave strongprogrammingskills can be easily signal analysis, processing and design. Using MATLAB Signal Processing Toolbox can quickly andefficiently design avarietyof digitalfilters. MATLAB basedon the noise issuespeech signal processing design and implementation of digital signalprocessing integrated use of the theoretical knowledge ofthe speechsignal plus noise, time domain, frequencydomainanalysis andfiltering. Thecorrespondingresults obtainedthroughtheoreticalderivation, and then use MATLAB as a programming toolfor computer implementation.Implemented inthe design process,usingthewindow function methodtodesign FIR digital filters with Butterworth, Chebyshev andbilinear Reform IIR digital filter design and use ofMATLAB as asupplementary tool to complete thecalculation and graphic design Drawing. Throughthesimulation of thedesigned filter and the frequency analysis shows thatusingMatlabSignal Processing Toolbox can quickly and easily design digital filters FIR andIIR,the processis simple and convenient, the results of the performance indicators to meetthe specifiedrequirements. ? Keywords: digital filter; MATLAB;Chebyshev;Butterworth;

基于麦克风阵列的语音增强算法概述

- 29 - 基于麦克风阵列的语音增强算法概述 丁 猛 (海军医学研究所,上海 200433) 【摘 要】麦克风阵列语音增强技术是将阵列信号处理与语音信号处理相结合,利用语音信号的空间相位信息对语音信号进行增强的一种技术。文章介绍了各种基于麦克风阵列的语音增强基本算法,概述了各算法的基本原理,并总结了各算法的特点及其所适用的声学环境特性。 【关键词】麦克风阵列;阵列信号处理;语音增强 【中图分类号】TN911.7 【文献标识码】A 【文章编号】1008-1151(2011)03-0029-02 (一)引言 在日常生活和工作中,语音通信是人与人之间互相传递信息沟通不可缺少的方式。近年来,虽然数据通信得到了迅速发展,但是语音通信仍然是现阶段的主流,并在通信行业中占主导地位。在语音通信中,语音信号不可避免地会受到来自周围环境和传输媒介的外部噪声、通信设备的内部噪声及其他讲话者的干扰。这些干扰共同作用,最终使听者获得的语音不是纯净的原始语音,而是被噪声污染过的带噪声语音,严重影响了双方之间的交流。 应用阵列信号处理技术的麦克风阵列能够充分利用语音信号的空时信息,具有灵活的波束控制、较高的空间分辨率、高的信号增益与较强的抗干扰能力等特点,逐渐成为强噪声环境中语音增强的研究热点。美国、德国、法国、意大利、日本、香港等国家和地区许多科学家都在开展这方面的研究工作,并且已经应用到一些实际的麦克风阵列系统中,这些应用包括视频会议、语音识别、车载声控系统、大型场所的记录会议和助听装置等。 文章将介绍各种麦克风阵列语音增强算法的基本原理,并总结各个算法的特点及存在的局限性。 (二)常见麦克风阵列语音增强方法 1.基于固定波束形成的麦克风阵列语音增强 固定波束形成技术是最简单最成熟的一种波束形成技术。1985年美国学者Flanagan 提出采用延时-相加(Delay-and-Sum)波束形成方法进行麦克风阵列语音增强,该方法通过对各路麦克风接收到的信号添加合适的延时补偿,使得各路输出信号在某一方向上保持同步,并在该方向的入射信号获得最大增益。此方法易于实现,但要想获取较高的噪声抑制能力则需要增加麦克风数目,然而对非相干噪声没有抑制能力,环境适应性差,因此实际中很少单独使用。后来出现的微分麦克风阵列(Differential Microphone Arrays)、超方向麦克风阵列(Superairective Microphone Arrays )和固定频率波束形成(Frequency-Invariant Beamformers) 技术也属于固定波束形成。 2.基于自适应波束形成器的麦克风阵列语音增强 自适应波束形成是现在广泛使用的一类麦克风阵列语音增强方法。最早出现的自适应波束形成算法是1972年由Frost 提出的线性约束最小方差(Linearly Constrained Minimum Variance,LCMV)自适应波束形成器。其基本思想是在某方向有用信号的增益一定的前提下,使阵列输出信号的功率最小。在线性约束最小方差自适应波束形成器的基础上,1982年Griffiths 和Jim 提出了广义旁瓣消除器(Generalized Sidelobe Canceller, GSC),成为了许多算法的基本框架(图1)。 图1 广义旁瓣消除器的基本结构 广义旁瓣消除器是麦克风阵列语音增强应用最广泛的技术,即带噪声的语音信号同时通过自适应通道和非自适应通道,自适应通道中的阻塞矩阵将有用信号滤除后产生仅包含多通道噪声参考信号,自适应滤波器根据这个参考信号得到噪声估计,最后由这个被估计的噪声抵消非自适应通道中的噪声分量,从而得到有用的纯净语音信号。 如果噪声源的数目比麦克风数目少,自适应波束法能得到很好的性能。但是随着干扰数目的增加和混响的增强,自适应滤波器的降噪性能会逐渐降低。 3.基于后置滤波的麦克风阵列语音增强 1988年Zelinski 将维纳滤波器应用在麦克风阵列延时—相加波束形成的输出端,进一步提高了语音信号的降噪效果,提出了基于后置滤波的麦克风阵列语音增强方法(图2)。基于后置滤波的方法在对非相干噪声抑制方面,不仅具有良好的效果,还能够在一定程度上适应时变的声学环境。它的基本原理是:假设各麦克风接收到的目标信号相同,接收到的噪声信号独立同分布,信号和噪声不相关,根据噪声特性, 【收稿日期】2010-12-30 【作者简介】丁猛(1983-),男,海军医学研究所研究实习员。

语音信号处理实验一采集和预处理

实验一语音信号的采集及预处理 一、实验目的 在理论学习的基础上,进一步地理解和掌握语音信号预处理及短时加窗的意义及基于matlab的实现方法。 二、实验原理 1.语音信号的录音、读入、放音等:练习matlab中几个音频处理函数,利用函数wavread 对语音信号进行采样,记住采样频率和采样点数,给出以下语音的波形图(2.wav)。利用wavplay或soundview放音。也可以利用wavrecord自己录制一段语音,并进行以上操作(需要话筒)。 2.语音信号的分帧:对语音信号进行分帧,可以利用voicebox工具箱中的函数enframe。 voicebox工具箱是基于GNU协议的自由软件,其中包含了很多语音信号相关的函数。3.语音信号的加窗:本步要求利用window函数设计窗口长度为256(N=256)的矩形窗(rectwin)、汉明窗(hamming)及汉宁窗(hann)),利用wvtool函数观察其时域波形图及频谱特性,比较得出结论。观察整个信号加矩形窗及汉明窗后的波形,利用subplot与reshape函数将分帧后波形、加矩形窗波形及加汉明窗波形画在一张图上比较。取出其中一帧,利用subplot与reshape函数将一帧语音的波形、加矩形窗波形及加汉明窗波形画在一张图上比较将得出结论。 4.预加重:即语音信号通过一个一阶高通滤波器1 9375 1- -z。 .0 三、实验步骤、实验程序、图形及结论 1.语音信号的录音、读入、放音等 程序: [x,fs,nbit]=wavread('D:\2.wav'); %fs=10000,nbit=16 y=soundview('D:\2.wav') 2.语音信号的分帧 程序: [x,fs,nbit]=wavread('D:\2.wav'); len=256; inc=128; y=enframe(x,len,inc); figure; subplot(2,1,1),plot(x) subplot(2,1,2),plot(y)

基于matlab的语音信号处理程序

wavefile='a.wav'; [y,fs,nbits]=wavread(wavefile);%读取信号,采样率和采样位数[10000,19999] sound(y,fs,nbits) fs %采样频率这里每秒22050,发现采样频率为音频信号的典型值22050Hz nbits Y=fft(y,1024);%数据点数 whos y figure(1), subplot(2,1,1),plot(y);title('原始信号波形');grid on subplot(2,1,2),plot(abs(Y));title('原始信号频谱'); grid on%横坐标频率,纵坐标振幅%subplot(3,1,3),plot(angle(Y));title('原始信号相位');grid on %双线性变换法设计的低通滤波器 fp=1000;%fp为通带频率 fc=1200;%fc为阻带起始频率 As=100;%As-阻带最小衰减(dB); Ap=1;%Ap-通带波纹(dB); fs1=fs; wp=2*fp/fs1;%wp-椭圆滤波器通带截止角频率; wc=2*fc/fs1;%Ws-椭圆滤波器阻带起始角频率; [n,wn]=ellipord(wp,wc,Ap,As); %n-椭圆滤波器最小阶数; [b,a]=ellip(n,Ap,As,wn);%返回长度为n+1的滤波器系数行向量b和a, b为分子a 为分母 figure(2),freqz(b,a,512,fs1); %数字滤波器的频率响应函数,512表示选取单位圆的上半圆等间距的N个点作为频响输出; x=filter(b,a,y);%一维数字滤波器,y2为滤波前输入,x为滤波结果序列 X=fft(x,1024); figure(3), subplot(2,1,1),plot(x);title('低通滤波后信号波形');grid on subplot(2,1,2),plot(abs(X));title('低通滤波后信号频谱');grid on sound(x,fs); %分析图形,比较滤波前后时域波形和频域频谱。%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %短时能量 y=y*2^nbits/2; frameSize=256; overlap=128; %[y,fs,nbits]=wavReadInt(wavefile); fprintf('length of %s is %g sec.\n',wavefile,length(y)/fs);

相关文档
最新文档