基于MATLAB的语音信号分析与处理的实验报告
实验二基于MATLAB分析语音信号频域特征
![实验二基于MATLAB分析语音信号频域特征](https://img.taocdn.com/s3/m/d6e0e09df524ccbff0218431.png)
实验二 基于MATLAB 分析语音信号频域特征一、实验目的信号的傅立叶表示在信号的分析与处理中起着重要的作用。
因为对于线性系统来说,可以很方便地确定其对正弦或复指数和的响应,所以傅立叶分析方法能完善地解决许多信号分析和处理问题。
另外,傅立叶表示使信号的某些特性变得更明显,因此,它能更深入地说明信号的各项物理现象。
由于语音信号是随着时间变化的,通常认为,语音是一个受准周期脉冲或随机噪声源激励的线性系统的输出。
输出频谱是声道系统频率响应与激励源频谱的乘积。
声道系统的频率响应及激励源都是随时间变化的,因此一般标准的傅立叶表示虽然适用于周期及平稳随机信号的表示,但不能直接用于语音信号。
由于语音信号可以认为在短时间内,近似不变,因而可以采用短时分析法。
本实验要求掌握傅里叶分析原理,会利用已学的知识,编写程序估计短时谱、倒谱,画出语谱图,并分析实验结果,在此基础上,借助频域分析方法所求得的参数分析语音信号的基音周期或共振峰。
二、实验原理1、短时傅立叶变换由于语音信号是短时平稳的随机信号,某一语音信号帧的短时傅立叶变换的定义为:()()()jwjwmn m X e x m w n m e∞-=-∞=-∑ (1.1)其中w(n-m)是实窗口函数序列,n 表示某一语音信号帧。
令n-m=k',则得到(')'()(')(')jwjw n k n k X e w k x n k e∞--=-∞=-∑ (1.2)于是可以得到()()()jw jwnjwkn k X e ew k x n k e∞-=-∞=-∑ (1.3)假定()()()jwjwkn k X e w k x n k e∞=-∞=-∑ (1.4)则可以得到()()jw jwn jw n n X e e X e -= (1.5)同样,不同的窗口函数,将得到不同的傅立叶变换式的结果。
由上式可见,短时傅立叶变换有两个变量:n 和ω,所以它既是时序n 的离散函数,又是角频率ω的连续函数。
基于MATLAB的语音信号分析与处理的实验报告
![基于MATLAB的语音信号分析与处理的实验报告](https://img.taocdn.com/s3/m/73ce041010a6f524ccbf8529.png)
基于MA TLAB的语音信号分析与处理的实验报告数字信号课程设计,屌丝们有福了一.实验目的数字信号课程设计,屌丝们有福了综合计运用数字信号处理的理论知识进行频谱分析和滤波器设计,通过理论推导得出相应的结论,培养发现问题、分析问题和解决问题的能力。
并利用MATLAB作为工具进行实现,从而复习巩固课堂所学的理论知识,提高对所学知识的综合应用能力,并从实践上初步实现对数字信号的处理。
此外,还系统的学习和实现对语音信号处理的整体过程,从语音信号的采集到分析、处理、频谱分析、显示和储存。
二.实验的基本要求数字信号课程设计,屌丝们有福了1.进一步学习和巩固MATLAB的使用,掌握MATLAB的程序设计方法。
2.掌握在windows环境下语音信号采集的方法。
3.掌握数字信号处理的基本概念、基本理论、原理和基本方法。
4.掌握MATLAB设计FIR和IIR数字滤波器的方法。
5.学会用MATLAB对信号进行分析和处理。
三.实验内容录制一段自己的语音信号,(语音信号声音可以理解成由振幅和相位随时间缓慢变化的正弦波构成。
人的听觉对声音的感觉特征主要包含在振幅信息中,相位信息一般不起作用。
在研究声音的性质时,往往把时域信息(波形图)变换得到它的频域信息(频谱),通过研究频谱和与频谱相关联的特征获得声音的特性。
)并对录制的信号进行采样;画出采样后语音信号的时域波形和频谱图;给定滤波器的性能指标,采用窗函数法或者双线性变换设计滤波器,并画出滤波器的频率响应;然后用自己设计的滤波器对采集的信号进行滤波,画出滤波后信号的时域波形和频谱,并对滤波前后的信号进行对比,分析信号发生的变化;回放语音信号。
数字信号课程设计,屌丝们有福了四.实验的实现(1).语音信号的采集采用windows下的录音机或者手机、其他的软件,录制一段自己的话音,时间控制在一分钟左右;然后在MATLAB软件平台下,利用函数wavread对自己的话音进行采样,记住采样的频率和采样的点数。
应用MatLab对语音信号进行
![应用MatLab对语音信号进行](https://img.taocdn.com/s3/m/b5cf163367ec102de2bd899c.png)
数字信号处理综合实验报告综合实验名称:应用MatLab对语音信号进行频谱分析及滤波系:三系学生姓名:李大武班级:08通信(1)成绩:开课时间:2011-2012 学年一学期一.综合实验题目应用MatLab对语音信号进行频谱分析及滤波二.主要内容录制一段个人自己的语音信号,并对录制的信号进行采样;画出采样后语音信号的时域波形和频谱图;给定滤波器的性能指标,采用窗函数法和双线性变换设计滤波器,并画出滤波器的频率响应;然后用自己设计的滤波器对采集的信号进行滤波,画出滤波后信号的时域波形和频谱,并对滤波前后的信号进行对比,分析信号的变化;回放语音信号;课程设计应完成的工作:1、语音信号的采集;2、语音信号的频谱分析;3、数字滤波器的设计;4、对语音信号进行滤波处理;5、对滤波前后的语音信号频谱进行对比分析;三.具体要求1、学生能够根据设计内容积极主动查找相关资料;2、滤波器的性能指标可以根据实际情况作调整;3、对设计结果进行独立思考和分析;4、设计完成后,要提交相关的文档;1)课程设计报告书(纸质和电子版各一份,具体格式参照学校课程设计管理规定),报告内容要涵盖设计题目、设计任务、详细的设计过程、原理说明、、频谱图的分析、调试总结、心得体会、参考文献(在报告中参考文献要做标注,不少于5篇)。
2)可运行的源程序代码(电子版)四.进度安排序号内容时间(天)1 熟悉Matlab程序设计方法,了解数字信号处理工具箱使用22 分析题目,设计程序框图,编写程序代码 33 上机调试程序,修改并完善设计 24 验收设计成果及上交设计报告(电子稿和打印稿) 15 合计8五.成绩评定(1)平时成绩:无故旷课一次,平时成绩减半;无故旷课两次平时成绩为0分,无故旷课三次总成绩为0分。
迟到15分钟按旷课处理(2)设计成绩:按照实际的设计过程及最终的实现结果给出相应的成绩。
(3)设计报告成绩:按照提交报告的质量给出相应的成绩。
课程设计成绩=平时成绩(30%)+设计成绩(30%)+设计报告成绩(40%)一、设计题目应用Matlab对语音信号进行频谱分析及滤波。
基于MATLAB的语音信号时域特性分析_语音信号处理实验报告
![基于MATLAB的语音信号时域特性分析_语音信号处理实验报告](https://img.taocdn.com/s3/m/17a289c60b4e767f5bcfcec5.png)
南京信息工程大学 实验(实习)报告实验(实习)名称 基于MATLAB 的语音信号时域特性分析 实验(实习)日期 2013.4.18 得分 ___指导教师院电子与信息工程专业电子信息工程年级 班次 姓名 学号一、实验目的语音信号是一种非平稳的时变信号,它携带着各种信息。
在语音编码、语音合成、语音识别和语音增强等语音处理中无一例外需要提取语音中包含的各种信息。
语音信号分析的目的就在与方便有效的提取并表示语音信号所携带的信息。
语音信号分析可以分为时域和变换域等处理方法,其中时域分析是最简单的方法,直接对语音信号的时域波形进行分析,提取的特征参数主要有语音的短时能量,短时平均过零率,短时自相关函数等。
本实验要求掌握时域特征分析原理,并利用已学知识,编写程序求解语音信号的短时过零率、短时能量、短时自相关特征,分析实验结果,并能掌握借助时域分析方法所求得的参数分析语音信号的基音周期及共振峰。
二、实验原理及实验结果1.窗口的选择通过对发声机理的认识,语音信号可以认为是短时平稳的。
在5~50ms 的范围内,语音频谱特性和一些物理特性参数基本保持不变。
我们将每个短时的语音称为一个分析帧。
一般帧长取10~30ms 。
我们采用一个长度有限的窗函数来截取语音信号形成分析帧。
通常会采用矩形窗和汉明窗。
图1.1给出了这两种窗函数在帧长N=50时的时域波形。
0.20.40.60.811.21.41.61.82矩形窗samplew (n )0.10.20.30.40.50.60.70.80.91hanming 窗samplew (n )图1.1 矩形窗和Hamming 窗的时域波形矩形窗的定义:一个N 点的矩形窗函数定义为如下{1,00,()n Nw n ≤<=其他hamming 窗的定义:一个N 点的hamming 窗函数定义为如下0.540.46cos(2),010,()n n NN w n π-≤<-⎧⎨⎩其他=这两种窗函数都有低通特性,通过分析这两种窗的频率响应幅度特性可以发现(如图1.2):矩形窗的主瓣宽度小(4*pi/N ),具有较高的频率分辨率,旁瓣峰值大(-13.3dB ),会导致泄漏现象;汉明窗的主瓣宽8*pi/N ,旁瓣峰值低(-42.7dB ),可以有效的克服泄漏现象,具有更平滑的低通特性。
语音信号处理及matlab仿真实验总结
![语音信号处理及matlab仿真实验总结](https://img.taocdn.com/s3/m/4ed48772b207e87101f69e3143323968001cf47d.png)
语音信号处理及matlab仿真实验总结
语音信号处理是利用数字信号处理技术对语音信号进行分析、处
理和改进的过程。
语音信号是不规则的波形,其包含了很多信息,如
语音的音高、音调、音色、语速、语气等,因此语音信号处理是一项
非常重要的技术。
语音信号处理的一般流程包括语音信号采集、预处理、特征提取、模型建立和应用,其中预处理包括信号增强、降噪、去混响等,特征
提取包括时域特征、频域特征和时频域特征,模型建立包括声学模型
和语言模型等。
为了更加深入地掌握语音信号处理技术,我们进行了一些matlab
仿真实验。
我们首先学习了语音信号的采样和量化过程,并使用
matlab软件对语音信号进行了仿真采样和量化,了解了采样率和分辨
率等概念,还了解了量化噪声的影响。
其次,我们学习了语音信号的基本特征提取技术,并用matlab仿
真实现了时域特征、频域特征和时频域特征的提取,如时域的短时能
量和短时过零率、频域的傅里叶变换和倒谱系数、时频域的小波变换等。
最后,我们学习了基于模型的语音信号处理技术,如基于隐马尔
可夫模型、高斯混合模型、人工神经网络等模型的语音识别、语音合
成等应用,并用matlab进行了相关的仿真实验。
总之,语音信号处理是一项非常重要的技术,它可以在语音识别、语音合成、语音压缩、语音增强等领域得到广泛应用。
通过学习语音
信号处理及matlab仿真实验,我们了解到了它的基本理论和应用方法,并得到了一些实践经验,这对我们今后的学习和工作将具有很大的指
导意义。
基于MATLAB语音信号检测分析及处理
![基于MATLAB语音信号检测分析及处理](https://img.taocdn.com/s3/m/877fec8c32d4b14e852458fb770bf78a64293a04.png)
基于MATLAB语音信号检测分析及处理目录一、内容概述 (2)1. 研究背景与意义 (3)2. MATLAB在语音信号处理中的应用 (4)3. 论文研究内容及结构 (5)二、语音信号基础 (6)1. 语音信号概述 (8)2. 语音信号的特性 (9)3. 语音信号的表示方法 (10)三、MATLAB语音信号处理工具 (11)1. MATLAB语音工具箱介绍 (12)2. 常用函数及其功能介绍 (13)四、语音信号检测与分析 (15)1. 语音信号检测原理及方法 (16)2. 语音信号的频谱分析 (18)3. 语音信号的时频分析 (19)4. 语音信号的端点检测 (20)五、语音信号处理算法研究 (21)1. 预加重处理算法 (22)2. 分帧与加窗处理算法 (23)3. 预处理算法 (24)4. 特征提取算法 (25)5. 模式识别与分类算法 (26)六、语音信号处理实验设计与实现 (27)1. 实验目的与要求 (28)2. 实验环境与工具配置 (29)3. 实验内容与步骤 (30)4. 实验结果分析与讨论 (31)七、语音信号处理应用案例 (32)1. 语音识别系统应用案例 (33)2. 语音合成系统应用案例 (34)3. 语音情感识别应用案例 (35)4. 其他领域应用案例 (36)八、总结与展望 (38)1. 研究成果总结 (39)2. 研究不足与问题剖析 (40)3. 未来研究方向与展望 (41)一、内容概述语音信号捕捉与预处理:介绍如何使用MATLAB捕捉语音信号,包括从麦克风等输入设备获取原始语音数据,并对信号进行预处理,如去除噪声、增强语音质量等。
特征提取:详述如何从预处理后的语音信号中提取关键特征,如梅尔频率倒谱系数(MFCC)、线性预测编码(LPC)等,以便进行后续的模型训练或识别。
语音信号检测分析:探讨基于MATLAB的语音信号检测分析方法,包括端点检测、语音活动等检测算法的实现,以及基于统计模型、机器学习模型的语音信号分析。
matlab高级编程与应用-语音处理实验报告
![matlab高级编程与应用-语音处理实验报告](https://img.taocdn.com/s3/m/86df17e5524de518964b7d09.png)
语音处理实验报告自03 张驰昱2010012028一、语音预测模型(1)给定e(n) = s(n) -a1s(n -1) -a2s(n -2)假设e(n)是输入信号,s(n)是输出信号,上述滤波器的传递函数是什么?如果a1 = 1.3789,a2 = -0.9506 ,上述合成模型的共振峰频率是多少?用zplane,freqz,impz分别绘出零极点图,频率响应和单位样值响应。
用filter绘出单位样值响应,比较和impz的是否相同。
问题分析:本问题主要练习传递函数到零极点的转化,零极点的绘制,频率响应的绘制,单位响应的绘制,复习filter数字滤波器的使用。
具体实现:clear;clc;a = [1, -1.3789, 0.9506];sys=tf(1,a,-1,'variable','z^-1')[z,p]=tf2zp(1,a);%[r,p,k]=residuez(1,a);也能求出零点omg=abs(angle(p(1)));fs=8000;%数字采样频率f=omg*fs/2/pi%弧度转化为频率n=[0:49]';x=(n==0);figure(1);zplane(1,a);figure(2);freqz(1,a);figure(3);subplot(2,1,1),stem(n,filter(1,a,x));figure(3);subplot(2,1,2),impz(1,a,50);(2)理解speechproc的主要流程我认为主要的部分是以下程序段:(个人理解写在了注释中)%先要统一初始化所用到的向量,这样可以提高执行效率for n = 3:FN%汉明窗取到了帧长的三倍,所以n从3开始s_w = s(n*FL-WL+1:n*FL).*hw; %加窗方便用lpc处理[A E] = lpc(s_w, P); %用lpc技术得到传递函数系数As_f = s((n-1)*FL+1:n*FL); %待处理的本帧语音,即激励响应%需要推算本帧语音的激励,只有得到了激励才能做接下来的变声处理s_Pitch = exc(n*FL-222:n*FL);PT= findpitch(s_Pitch); %刚才算出的激励信号是有高斯白噪声的,需要找%出基音周期和能量,为重新合成激励信号做准备 G = sqrt(E*PT(n));(3)在27帧处观察零极点图问题分析:主要让我们对语音传函的共轭极点有一个更直观的认识具体实现:if n == 27figure(n);zplane(1,A);end(4)用filter计算每帧的激励信号问题分析:已经求出了传函系数和激励相应,只要传函的分子分母互换把激励相应当激励,得到的相应就是原激励具体实现:%前输出状态作为后输入状态即前后状态不变[temp1,zi_pre]=filter(A,1,s_f,zi_pre);exc((n-1)*FL+1:n*FL)=temp1;(5)利用刚才得到的激励信号,继续用filter重建语音问题分析:相当于对于之前求出的激励的验算。
语音信号MATLAB处理报告
![语音信号MATLAB处理报告](https://img.taocdn.com/s3/m/b42e391afad6195f312ba6db.png)
《随机信号分析与处理》实验报告指导教师:班级:学号:姓名:2011-11-20实验一 熟悉MA TLAB 的随机信号处理相关命令一、实验目的1、熟悉GUI 格式的编程及使用。
2、掌握随机信号的简单分析方法3、熟悉语音信号的播放、波形显示、均值等的分析方法及其编程 二、实验原理 1、语音的录入与打开在MATLAB 中,[y,fs,bits]=wavread('Blip',[N1 N2]);用于读取语音,采样值放在向量y 中,fs 表示采样频率(Hz),bits 表示采样位数。
[N1 N2]表示读取从N1点到N2点的值。
2、时域信号的FFT 分析FFT 即为快速傅氏变换,是离散傅氏变换的快速算法,它是根据离散傅氏变换的奇、偶、虚、实等特性,对离散傅立叶变换的算法进行改进获得的。
在MA TLABde 信号处理工具箱中函数FFT 的一种调用格式为Y=fft (x )其中X 是序列,Y 是序列的FFT 。
3、希尔伯特变换及性质x (t ) 的希尔伯特变换为x (t ) 与1/πt的卷积,即因此,对x (t ) 的希尔伯特变换可以看作为x (t ) 通过一个冲击响应为1/πt 的线性滤波器。
希尔伯特变换器在整个频域上具有恒为1 的幅频特性,为全通网络,在相位上则引入−π/2 和π/2的相移 三、实验结果分析00.511.522.5x 105-0.50.5原始语音信号时域图time nf u z h i n05010015020025030035040045050012原始语音信号频谱Hzf u d u01020304050607080901000.511.5原始语音信号幅值020040060080010001200-4-2024原始语音信号相位200400600800100012001400160018002000-2024频率(Hz )幅值N=128红和N=1024绿00.51 1.52 2.53 3.54 4.55x 105-0.50.51自相关函数5010015020025030035040045050000.020.040.060.080.1希尔伯特变换-0.12-0.1-0.08-0.06-0.04-0.020.020.040.060.08051015概率谱密度。
基于MATLAB的语音信号时域特性分析_语音信号处理实验报告
![基于MATLAB的语音信号时域特性分析_语音信号处理实验报告](https://img.taocdn.com/s3/m/17a289c60b4e767f5bcfcec5.png)
南京信息工程大学 实验(实习)报告实验(实习)名称 基于MATLAB 的语音信号时域特性分析 实验(实习)日期 2013.4.18 得分 ___指导教师院电子与信息工程专业电子信息工程年级 班次 姓名 学号一、实验目的语音信号是一种非平稳的时变信号,它携带着各种信息。
在语音编码、语音合成、语音识别和语音增强等语音处理中无一例外需要提取语音中包含的各种信息。
语音信号分析的目的就在与方便有效的提取并表示语音信号所携带的信息。
语音信号分析可以分为时域和变换域等处理方法,其中时域分析是最简单的方法,直接对语音信号的时域波形进行分析,提取的特征参数主要有语音的短时能量,短时平均过零率,短时自相关函数等。
本实验要求掌握时域特征分析原理,并利用已学知识,编写程序求解语音信号的短时过零率、短时能量、短时自相关特征,分析实验结果,并能掌握借助时域分析方法所求得的参数分析语音信号的基音周期及共振峰。
二、实验原理及实验结果1.窗口的选择通过对发声机理的认识,语音信号可以认为是短时平稳的。
在5~50ms 的范围内,语音频谱特性和一些物理特性参数基本保持不变。
我们将每个短时的语音称为一个分析帧。
一般帧长取10~30ms 。
我们采用一个长度有限的窗函数来截取语音信号形成分析帧。
通常会采用矩形窗和汉明窗。
图1.1给出了这两种窗函数在帧长N=50时的时域波形。
0.20.40.60.811.21.41.61.82矩形窗samplew (n )0.10.20.30.40.50.60.70.80.91hanming 窗samplew (n )图1.1 矩形窗和Hamming 窗的时域波形矩形窗的定义:一个N 点的矩形窗函数定义为如下{1,00,()n Nw n ≤<=其他hamming 窗的定义:一个N 点的hamming 窗函数定义为如下0.540.46cos(2),010,()n n NN w n π-≤<-⎧⎨⎩其他=这两种窗函数都有低通特性,通过分析这两种窗的频率响应幅度特性可以发现(如图1.2):矩形窗的主瓣宽度小(4*pi/N ),具有较高的频率分辨率,旁瓣峰值大(-13.3dB ),会导致泄漏现象;汉明窗的主瓣宽8*pi/N ,旁瓣峰值低(-42.7dB ),可以有效的克服泄漏现象,具有更平滑的低通特性。
基于Matlab的语音信号分析与处理(DOC)
![基于Matlab的语音信号分析与处理(DOC)](https://img.taocdn.com/s3/m/ef6011ce49649b6649d74706.png)
基于Matlab的语音信号分析与处理[摘要]语音信号处理是研究用数字信号处理技术和语音学知识对语音信号进行处理的新兴的学科,是目前发展最为迅速的信息科学研究领域的核心技术之一。
通过语音传递信息是人类最重要、最有效、最常用和最方便的交换信息形式。
滤波器设计在数字信号处理中占有极其重要的地位,FIR数字滤波器和IIR滤波器是滤波器设计的重要组成部分。
MATLAB功能强大、简单易学、编程效率高,深受广大科技工作者的欢迎。
课题基于MATLAB 有噪音语音信号处理与设计与实现,本人综合运用数字信号处理的理论知识对加噪声清浊语音信号进行时域、频域分析和滤波。
通过理论推导得出相应结论,用MATLAB平台对语音信号加入了不同的噪声,进一步用双线性变换法设计了一个的巴特沃思低通IIR滤波器和用窗函数法设计了FIR低通滤波器,然后对加噪的语音信号进行滤波处理。
最后对比滤波前后的语音信号的时域和频域特性。
[关键词]清浊语音信号采集;傅里叶变换;滤波器设计;信号处理目录引言............................................. - 1 -1基本原理....................................... - 1 -1.1语音信号概述................................... - 1 -1.2数字滤波器原理................................. - 1 -2总体设计思想................................... - 2 -2.1 语音信号的采集................................ - 2 -2.2 语音信号处理工具的选择........................ - 2 -2.3 数字滤波器的设计.............................. - 2 -3语音信号分析和滤波处理 ......................... - 4 -3.1 语音信号的采集................................ - 4 -3.2 语音信号的频谱分析............................ - 4 -3.3语言信号处理................................... - 6 -4滤波器的设计[4]................................. - 10 -4.1巴特沃斯低通滤波器............................ - 10 -4.2频率响应S域到Z域的变换:.................... - 13 -4.3设计数字带通滤波器............................ - 16 -4.4窗函数法的FIR滤器波.......................... - 20 -5结果及分析.................................... - 23 -6总结.......................................... - 23 -参考文献........................................ - 24 -附录原程序.................................... - 25 -引言语言是我们人类所特有的功能,它是传承和记载人类几千年文明史,没有语言就没有我们今天人类的文明。
基于MATLAB的语音信号分析与处理研究
![基于MATLAB的语音信号分析与处理研究](https://img.taocdn.com/s3/m/91bbcd17b5daa58da0116c175f0e7cd184251881.png)
基于MATLAB的语音信号分析与处理研究一、引言语音是人类最基本的沟通方式,随着科技的进步,语音信号分析与处理也变得越来越重要。
MATLAB作为一种常用的科学计算软件,具有强大的信号处理功能,在语音信号分析与处理领域有着广泛的应用。
本文将对基于MATLAB的语音信号分析与处理进行研究。
二、MATLAB在语音信号处理中的应用MATLAB作为一种强大的科学计算软件,拥有丰富的信号处理函数和工具箱,可以方便地进行语音信号分析与处理。
例如,MATLAB中的wavread函数可以读取.wav格式的语音文件,audioplayer函数可以播放语音信号,fft函数可以进行快速傅里叶变换,spectrogram函数可以绘制语音信号的谱图等等。
基于MATLAB的语音信号处理可以包括语音信号的去噪、分析、特征提取、分类等多个方面。
其中,语音信号的去噪是一项重要的任务。
在语音信号采集过程中,由于外部环境噪声的干扰,语音信号的质量会受到影响。
MATLAB可以利用卷积和滤波等技术进行去噪,提高语音信号的质量。
语音信号的分析是指对语音信号的基本参数进行测量,例如语音信号的时域、频域、能量、频谱等。
MATLAB中可以通过波形图、频谱图、谱密度图等方式对语音信号进行分析。
特征提取是语音信号处理中的重要环节,通过对语音信号的特征提取,可以为后续的分类工作奠定基础。
MATLAB中常用的语音信号特征包括倒谱系数、线性预测系数、功率谱密度等。
三、基于MATLAB的语音信号处理的应用案例1.基于MATLAB的语音识别系统语音识别技术是近年来发展迅速的一项技术。
可以通过语音识别技术实现语音指令控制、语音输入等功能。
基于MATLAB的语音识别系统可以通过对语音信号的分析、特征提取、分类等工作实现。
在语音识别系统中,广泛应用了HMM(隐马尔可夫模型)和GMM(高斯混合模型)等模型。
2.基于MATLAB的语音合成系统语音合成技术是将文本转换为语音的一种技术,可以实现语音合成、语音替换等功能。
(完整word版)基于matlab的语音信号分析与处理
![(完整word版)基于matlab的语音信号分析与处理](https://img.taocdn.com/s3/m/761c6747ce84b9d528ea81c758f5f61fb7362840.png)
基于matlab的语音信号分析与处理摘要:滤波器设计在数字信号处理中占有极其重要的地位,FIR数字滤波器和IIR 滤波器是滤波器设计的重要组成部分。
Matlab功能强大、编程效率高, 特别是Matlab具有信号分析工具箱,不需具备很强的编程能力,就可以很方便地进行信号分析、处理和设计。
基于MATLAB有噪音语音信号处理的设计与实现,综合运用数字信号处理的理论知识对加噪声语音信号进行时域、频域分析和滤波。
使用窗函数法来设计FIR数字滤波器,用巴特沃斯、切比雪夫和双线性变法设计IIR 数字滤波器,并利用MATLAB作为辅助工具完成设计中的计算与图形的绘制。
关键词:数字滤波器;MATLAB;切比雪夫Abstract:Filter design in digital signal processing plays an extremely important role, FIR digital filters and IIR filter is an important part of filter design. Matlab is powerful, programming efficiency, Matlab also has a particular signal analysis toolbox, it need not have strong programming skills can be easily signal analysis, processing and design. MATLAB based on the noise issue speech signal processing design and implementation of digital signal processing integrated use of the theoretical knowledge of the speech signal plus noise, time domain, frequency domain analysis and filtering. The corresponding results obtained through theoretical derivation, and then use MATLAB as a programming tool for computer implementation.Implemented in the design process, using the windowfunction method to design FIR digital filters with Butterworth, Chebyshev and bilinear Reform IIR digital filter design and use of MATLAB as a supplementary tool to complete the calculation and graphic design Drawing.Keywords:digital filter; MATLAB; Chebyshev语音信号处理是研究用数字信号处理技术和语音学知识对语音信号进行处理的新兴的学科,是目前发展最为迅速的信息科学研究领域的核心技术之一。
语音信号处理试验报告
![语音信号处理试验报告](https://img.taocdn.com/s3/m/bb830e8452ea551811a68722.png)
---------------------考试---------------------------学资学习网---------------------押题------------------------------语音信号处理实验班级:学号:姓名:实验一基于MATLAB的语音信号时域特征分析(2学时)短时能量)1.(1)加矩形窗a=wavread('mike.wav');a=a(:,1);subplot(6,1,1),plot(a);N=32;for i=2:6h=linspace(1,1,2.^(i-2)*N);%形成一个矩形窗,长度为2.^(i-2)*NEn=conv(h,a.*a);% 求短时能量函数Ensubplot(6,1,i),plot(En);if(i==2) ,legend('N=32');elseif(i==3), legend('N=64');elseif(i==4) ,legend('N=128');elseif(i==5) ,legend('N=256');elseif(i==6) ,legend('N=512');endend10-100.511.522.534x 104 20 N=3232.51.5200.514x 10 50 N=6431.50.51022.54x 10 1050 N=12831.5202.50.514x 10 20100 N=256322.50.511.504x 10 40200 N=5123100.51.522.54x 10(2)加汉明窗a=wavread('mike.wav');a=a(:,1);subplot(6,1,1),plot(a);N=32;for i=2:6h=hanning(2.^(i-2)*N);%形成一个汉明窗,长度为2.^(i-2)*NEn求短时能量函数En=conv(h,a.*a);%subplot(6,1,i),plot(En);if(i==2), legend('N=32');elseif(i==3), legend('N=64');elseif(i==4) ,legend('N=128');elseif(i==5) ,legend('N=256');elseif(i==6) ,legend('N=512');endend10-100.511.522.534x 102 10 N=3232.51.5020.514x 10 420 N=64311.522.50.504x 10 420 N=12831.5202.50.514x 10 1050 N=25631.522.500.514x 10 20100 N=512322.50.5011.54x 102)短时平均过零率a=wavread('mike.wav');a=a(:,1);n=length(a);N=320;subplot(3,1,1),plot(a);h=linspace(1,1,N);En=conv(h,a.*a); %求卷积得其短时能量函数Ensubplot(3,1,2),plot(En);for i=1:n-1if a(i)>=0b(i)= 1;elseb(i) = -1;endif a(i+1)>=0b(i+1)=1;elseb(i+1)= -1;endw(i)=abs(b(i+1)-b(i)); %求出每相邻两点符号的差值的绝对值endk=1;j=0;while (k+N-1)<nZm(k)=0;for i=0:N-1;Zm(k)=Zm(k)+w(k+i);endj=j+1;k=k+N/2; %每次移动半个窗endfor w=1:jQ(w)=Zm(160*(w-1)+1)/(2*N); %短时平均过零率endsubplot(3,1,3),plot(Q),grid;10-100.511.522.534x 102010000.511.522.534x 100.500204060801001201401601803)自相关函数N=240y=wavread('mike.wav');y=y(:,1);x=y(13271:13510);x=x.*rectwin(240);R=zeros(1,240);for k=1:240for n=1:240-kR(k)=R(k)+x(n)*x(n+k);endendj=1:240;plot(j,R);grid;2.521.510.50-0.5-1-1.5050100150200250分析语音信号频域特征MATLAB基于实验二1)短时谱cleara=wavread('mike.wav');a=a(:,1);subplot(2,1,1),plot(a);title('original signal');gridN=256;h=hamming(N);for m=1:Nb(m)=a(m)*h(m)endy=20*log(abs(fft(b)))subplot(2,1,2)plot(y);title('短时谱');gridoriginal signal10.50-0.5-100.511.522.534x 10谱时短10.5000.20.40.60.811.21.41.61.822)语谱图[x,fs,nbits]=wavread('mike.wav')x=x(:,1);specgram(x,512,fs,100);xlabel('时间(s)');ylabel('频率(Hz)'););'语谱图'title(语谱图50004000)3000zH(率频2000100000.511.52(s)时间3)倒谱和复倒谱(1)加矩形窗时的倒谱和复倒谱cleara=wavread('mike.wav',[4000,4350]);a=a(:,1);N=300;h=linspace(1,1,N);for m=1:Nb(m)=a(m)*h(m);endc=cceps(b);c=fftshift(c);d=rceps(b);d=fftshift(d);subplot(2,1,1)plot(d);title('加矩形窗时的倒谱')subplot(2,1,2)) '加矩形窗时的复倒谱'plot(c);title(加矩形窗时的倒谱10-1-2050100150200250300加矩形窗时的复倒谱1050-5-10050100150200250300(2)加汉明窗时的倒谱和复倒谱cleara=wavread('mike.wav',[4000,4350]);a=a(;,1);N=300;h=hamming(N);for m=1:Nb(m)=a(m)*h(m);endc=cceps(b);c=fftshift(c);d=rceps(b);d=fftshift(d);subplot(2,1,1)plot(d);title('加汉明窗时的倒谱')subplot(2,1,2)) '加汉明窗时的复倒谱'plot(c);title(加汉明窗时的倒谱10-1-2-3050100150200250300加汉明窗时的复倒谱1050-5-10050100150200250300实验三基于MATLAB的LPC分析MusicSource = wavread('mike.wav');MusicSource=MusicSource(:,1);Music_source = MusicSource';N = 256; % window length,N = 100 -- 1000;Hamm = hamming(N); % create Hamming windowframe = input('请键入想要处理的帧位置= ');% origin is current frameorigin = Music_source(((frame - 1) * (N / 2) + 1):((frame - 1) * (N / 2) + N));Frame = origin .* Hamm';%%Short Time Fourier Transform%[s1,f1,t1] = specgram(MusicSource,N,N/2,N);[Xs1,Ys1] = size(s1);for i = 1:Xs1FTframe1(i) = s1(i,frame);endN1 = input('请键入预测器阶数= '); % N1 is predictor's order[coef,gain] = lpc(Frame,N1); % LPC analysis using Levinson-Durbin recursionest_Frame = filter([0 -coef(2:end)],1,Frame); % estimate frame(LP)FFT_est = fft(est_Frame);err = Frame - est_Frame; % error% FFT_err = fft(err);subplot(2,1,1),plot(1:N,Frame,1:N,est_Frame,'-r');grid;title('原始语音帧vs.预测后语音帧') subplot(2,1,2),plot(err);grid;title('误差');pause%subplot(2,1,2),plot(f',20*log(abs(FTframe2)));grid;title('短时谱')%% Gain solution using G^2 = Rn(0) - sum(ai*Rn(i)),i = 1,2,...,P%fLength(1 : 2 * N) = [origin,zeros(1,N)];Xm = fft(fLength,2 * N);X = Xm .* conj(Xm);Y = fft(X , 2 * N);Rk = Y(1 : N);PART = sum(coef(2 : N1 + 1) .* Rk(1 : N1));G = sqrt(sum(Frame.^2) - PART);A = (FTframe1 - FFT_est(1 : length(f1'))) ./ FTframe1 ; % inverse filter A(Z)subplot(2,1,1),plot(f1',20*log(abs(FTframe1)),f1',(20*log(abs(1 ./ A))),'-r');grid;title('短时谱'); subplot(2,1,2),plot(f1',(20*log(abs(G ./ A))));grid;title('LPC谱');pause%plot(abs(ifft(FTframe1 ./ (G ./ A))));grid;title('excited')%plot(f1',20*log(abs(FFT_est(1 : length(f1')) .* A / G )));grid;%pause%% find_pitch%temp = FTframe1 - FFT_est(1 : length(f1'));% not move higher frequncepitch1 = log(abs(temp));pLength = length(pitch1);result1 = ifft(pitch1,N);% move higher frequncepitch1((pLength - 32) : pLength) = 0;result2 = ifft(pitch1,N);% direct do real cepstrum with errpitch = fftshift(rceps(err));origin_pitch = fftshift(rceps(Frame));subplot(211),plot(origin_pitch);grid;title('原始语音帧倒谱(直接调用函数)');subplot(212),plot(pitch);grid;title('预测误差倒谱(直接调用函数)');pausesubplot(211),plot(1:length(result1),fftshift(real(result1)));grid;title('预测误差倒谱(根据定义编写,没有去除高频分量)');subplot(212),plot(1:length(result2),fftshift(real(result2)));grid;title('预测误差倒谱(根据定义编);)'写,去除高频分量原始语音帧vs.预测后语音帧0.40.20-0.2-0.4050100150200250300差误0.20.10-0.1-0.2300250100050150200短时谱500-50-100010203040506070谱LPC100806040010203040506070原始语音帧倒谱(直接调用函数)0.50-0.5-1050100150200250300预测误差倒谱(直接调用函数)0.50-0.5-1050100150200250300预测误差倒谱(根据定义编写,没有去除高频分量)0.20-0.2-0.4-0.6050100150200250300预测误差倒谱(根据定义编写,去除高频分量)0.10-0.1-0.2-0.3050100150200250300预测误差倒谱(根据定义编写,没有去除高频分量)0.20-0.2-0.4-0.6050100150200250300预测误差倒谱(根据定义编写,去除高频分量)0.10-0.1-0.2-0.3050100150200250300预测误差倒谱(根据定义编写,没有去除高频分量)0.20-0.2-0.4-0.6050100150200250300预测误差倒谱(根据定义编写,去除高频分量)0.10-0.1-0.2-0.3050100150200250300实验四基于VQ的特定人孤立词语音识别研究1、mfcc.mccc = mfcc(x)function);'m'bank=melbankm(24,256,8000,0,0.5,bank=full(bank); bank=bank/max(bank(:));k=1:12for n=0:23; dctcoef(k,:)=cos((2*n+1)*k*pi/(2*24));endw = 1 + 6 * sin(pi * [1:12] ./ 12);w = w/max(w);xx=double(x);xx=filter([1 -0.9375],1,xx);xx=enframe(xx,256,80); i=1:size(xx,1)for y = xx(i,:); s = y' .*hamming(256); t = abs(fft(s)); t = t.^2; c1=dctcoef * log(bank * t(1:129));c2 = c1.*w'; m(i,:)=c2';enddtm = zeros(size(m)); i=3:size(m,1)-2for dtm(i,:) = -2*m(i-2,:) - m(i-1,:) + m(i+1,:) + 2*m(i+2,:);end dtm = dtm / 3;ccc = [m dtm];ccc = ccc(3:size(m,1)-2,:);2、vad.m[x1,x2] = vad(x)function x = double(x);x = x / max(abs(x));FrameLen = 240;FrameInc = 80;amp1 = 10;amp2 = 2;zcr1 = 10;zcr2 = 5;% 6*10ms = 30ms maxsilence = 8;% 15*10ms = 150ms minlen = 15;status = 0;count = 0;silence = 0;tmp1 = enframe(x(1:end-1), FrameLen, FrameInc);tmp2 = enframe(x(2:end) , FrameLen, FrameInc);signs = (tmp1.*tmp2)<0;diffs = (tmp1 -tmp2)>0.02;zcr = sum(signs.*diffs, 2);amp = sum(abs(enframe(filter([1 -0.9375], 1, x), FrameLen, FrameInc)),2);amp1 = min(amp1, max(amp)/4);amp2 = min(amp2, max(amp)/8);x1 = 0;x2 = 0; n=1:length(zcr)for goto = 0; status switch{0,1} caseif amp(n) > amp1x1 = max(n-count-1,1); status = 2; silence = 0; count = count + 1;... amp(n) > amp2 | elseif zcr(n) > zcr2status = 1; count = count + 1;else status = 0; count = 0;end2, caseamp(n) > amp2 | ...if zcr(n) > zcr2 count = count + 1; elsesilence = silence+1; if silence < maxsilencecount = count + 1; count < minlen elseifstatus = 0; silence = 0; count = 0;elsestatus = 3;endend3, case; break endcount = count-silence/2;x2 = x1 + count -1;3、codebook.m%clear; xchushi= codebook(m)function[a,b]=size(m);[m1,m2]=szhixin(m); [m3,m4]=szhixin(m2);[m1,m2]=szhixin(m1);[m7,m8]=szhixin(m4);[m5,m6]=szhixin(m3);[m3,m4]=szhixin(m2);[m1,m2]=szhixin(m1);[m15,m16]=szhixin(m8);[m13,m14]=szhixin(m7);[m11,m12]=szhixin(m6);[m9,m10]=szhixin(m5);[m7,m8]=szhixin(m4);[m5,m6]=szhixin(m3);[m3,m4]=szhixin(m2);[m1,m2]=szhixin(m1);chushi(1,:)=zhixinf(m1);chushi(2,:)=zhixinf(m2);chushi(3,:)=zhixinf(m3);chushi(4,:)=zhixinf(m4); chushi(5,:)=zhixinf(m5);chushi(6,:)=zhixinf(m6);chushi(7,:)=zhixinf(m7); chushi(8,:)=zhixinf(m8);chushi(9,:)=zhixinf(m9);chushi(10,:)=zhixinf(m10); chushi(11,:)=zhixinf(m11);chushi(12,:)=zhixinf(m12);chushi(13,:)=zhixinf(m13);chushi(14,:)=zhixinf(m14);chushi(15,:)=zhixinf(m15);chushi(16,:)=zhixinf(m16);sumd=zeros(1,1000);k=1;dela=1;xchushi=chushi;(k<=1000)while sum=ones(1,16); p=1:a fori=1:16 for d(i)=odistan(m(p,:),chushi(i,:));enddmin=min(d); sumd(k)=sumd(k)+dmin;i=1:16ford(i)==dmin if xchushi(i,:)=xchushi(i,:)+m(p,:); sum(i)=sum(i)+1;end endendi=1:16forxchushi(i,:)=xchushi(i,:)/sum(i);endk>1if dela=abs(sumd(k)-sumd(k-1))/sumd(k);end k=k+1; chushi=xchushi; end return4、testvq.mclear;)这是一个简易语音识别系统,请保证已经将您的语音保存在相应文件夹中'disp(')正在训练您的语音模版指令,请稍后...'disp(' i=1:10for,i-1);\\ú.wav'海儿的声音 fname =sprintf('D:\\matlab\\work\\dtw1\\ x = wavread(fname); [x1 x2] = vad(x); m = mfcc(x); m = m(x1:x2-5,:);ref(i).code=codebook(m);end)?''语音指令训练成功,恭喜!disp()...''正在测试您的测试语音指令,请稍后disp( i=1:10for,i-1);海儿的声音\\?.wav'fname = sprintf('D:\\matlab\\work\\dtw1\\ x = wavread(fname);[x1 x2] = vad(x); mn = mfcc(x); mn = mn(x1:x2-5,:);%mn = mn(x1:x2,:) test(i).mfcc = mn;end sumsumdmax=0;sumsumdmin=0;)''对训练过的语音进行测试disp( w=1:10for sumd=zeros(1,10); [a,b]=size(test(w).mfcc);i=1:10forp=1:a for j=1:16 ford(j)=odistan(test(w).mfcc(p,:),ref(i).code(j,:));dmin=min(d);%×üê§?? sumd(i)=sumd(i)+dmin;end end sumdmin=min(sumd)/a;sumdmin1=min(sumd);sumdmax(w)=max(sumd)/a; sumsumdmin=sumdmin+sumsumdmax;sumsumdmax=sumdmax(w)+sumsumdmax;)正在匹配您的语音指令,请稍后...'disp(' i=1:10for (sumd(i)==sumdmin1) if (i) switch 1 case);前'', '您输入的语音指令为:%s; 识别结果为%s\n','前fprintf(' 2 case);', ''后:%s; 识别结果为%s\n','后 fprintf('您输入的语音指令为 3case);', '左识别结果为%s\n','左' fprintf('您输入的语音指令为:%s;4case);''右,'右', 您输入的语音指令为 fprintf('a:%s; 识别结果为%s\n' 5case);''东'东', fprintf('您输入的语音指令为:%s; 识别结果为%s\n', 6case);南'南', ' fprintf('您输入的语音指令为:%s; 识别结果为%s\n',' 7 case);', '西,:%s; 识别结果为%s\n''西' fprintf('您输入的语音指令为 8case);''北,'北', 您输入的语音指令为 fprintf(':%s; 识别结果为%s\n' 9case);上'', ', fprintf('您输入的语音指令为a:%s; 识别结果为%s\n''上 10case);下', '下'',您输入的语音指令为 fprintf('a:%s; 识别结果为%s\n'otherwise); 'error' fprintf(endendend end delamin=sumsumdmin/10;delamax=sumsumdmax/10;)''对没有训练过的语音进行测试disp()正在测试你的语音,请稍后...'disp(' i=1:10for,i-1);fname =sprintf('D:\\matlab\\work\\dtw1\\o£?ùμ?éùò?\\?.wav' x = wavread(fname);[x1 x2] = vad(x); mn = mfcc(x); mn = mn(x1:x2-5,:);%mn = mn(x1:x2,:)test(i).mfcc = mn;endw=1:10for sumd=zeros(1,10); [a,b]=size(test(w).mfcc); i=1:10forp=1:a for j=1:16ford(j)=odistan(test(w).mfcc(p,:),ref(i).code(j,:));enddmin=min(d);%×üê§?? sumd(i)=sumd(i)+dmin;end end sumdmin=min(sumd);z=0; i=1:10for (((sumd(i))/a)>delamax)|| if z=z+1;endend)...'disp('正在匹配您的语音指令,请稍后z<=3if i=1:10for (sumd(i)==sumdmin) if (i)switch1case);'前', '前',%s\n'识别结果为:%s; 您输入的语音指令为' fprintf(2 case);'后', ':%s; 识别结果为%s\n','后 fprintf('您输入的语音指令为3case);', '左识别结果为%s\n','左' fprintf('您输入的语音指令为:%s;4case);''右,'右', 识别结果为 fprintf('您输入的语音指令为a:%s; %s\n' 5case);''东'东', fprintf('您输入的语音指令为:%s; 识别结果为%s\n', 6 case);南'南', ' fprintf('您输入的语音指令为:%s; 识别结果为%s\n',' 7 case);', '西西:%s; 识别结果为%s\n','' fprintf('您输入的语音指令为 8case );''北,'北', 识别结果为 fprintf('您输入的语音指令为:%s; %s\n' 9case);上'', '上 fprintf('您输入的语音指令为a:%s; 识别结果为%s\n',' 10case);下'','下', 识别结果为 fprintf('您输入的语音指令为a:%s; %s\n'otherwise ); fprintf('error'endendend else)您输入的语音无效?£?\n'' fprintf(end end。
基于MATLAB实现对语音信号分析
![基于MATLAB实现对语音信号分析](https://img.taocdn.com/s3/m/03dfbafdf021dd36a32d7375a417866fb94ac06f.png)
基于MATLAB实现对语音信号分析语音信号分析是一种研究语音产生、处理和识别的技术,它在语音识别、音频处理和语音合成等领域都有广泛的应用。
MATLAB提供了丰富的工具箱和函数,使得语音信号分析变得简单高效。
在本文中,我们将介绍如何使用MATLAB对语音信号进行分析。
首先,我们需要将语音信号加载到MATLAB中。
MATLAB提供了`audioread`函数用于读取音频文件,返回音频数据和采样率。
音频数据是一个一维向量,表示音频信号的振幅。
采样率则表示每秒采样的样本数。
```matlab[audio, fs] = audioread('speech.wav');```接下来,我们可以对音频信号进行一系列的分析。
以下是一些常见的分析方法:1. 时域分析:时域分析是研究音频信号在时间上的变化。
MATLAB提供了`plot`函数用于绘制音频信号的波形图。
```matlabxlabel('Time (s)');ylabel('Amplitude');title('Speech Waveform');```2. 频谱分析:频谱分析是研究音频信号在频率上的成分。
MATLAB提供了`fft`函数用于计算音频信号的傅里叶变换,返回频谱数据。
频谱数据是一个复数向量,表示音频信号在不同频率上的幅度和相位。
```matlabN = length(audio);frequencies = (0:N-1) / N * fs;spectrum = abs(fft(audio));plot(frequencies, spectrum);xlabel('Frequency (Hz)');ylabel('Magnitude');title('Speech Spectrum');```3. 短时能量和过零率:短时能量和过零率可以反映音频信号的能量和频率特性。
基于matlab的语音信号的分析与处理
![基于matlab的语音信号的分析与处理](https://img.taocdn.com/s3/m/bbe178ef19e8b8f67c1cb969.png)
《信号与系统》课程设计报告__语音信号的分析和处理一、摘要本次课程设计运用matlab 对语音信号的时域和频域进行分析,得出语音信号差别的原因所在,并探讨了电话对语音信号采样频率为8KHz 的原因,通过滤波实现回波信号的还原。
二、前言众所周知,语音信号的处理分析已变得非常流行,基于语音处理分析技术的产品也开始流入市场,遍布人们的生活。
这也是本小组致力于该方面研究的原因。
为了研究不同类型的声音信号性质,我们以数学知识为基础,通过快速傅里叶变换及其逆变换等一系列技术手段,从时域图,频域图入手,经对语音信号素材的处理,分析,对比,类比,对各类语音信号性质有了一定的了解,得出了不少有意义的结论。
三、正文【设计目标】尝试对语音信号进行时频域分析和处理的基本方法 【设计原理】通过MATLAB 的函数wavread()可以读入一个.wav 格式的音频文件,并将该文件保存到指定的数组中。
例如下面的语句(更详细的命令介绍可以自己查阅MATLAB 的帮助)中,将.wav 读入后存放到矩阵y 中。
y = wavread('SpecialEnglish.wav');对于单声道的音频文件,y 只有一行,即一个向量;对于双声道的音频文件,y 有两行,分别对应了两个声道的向量。
我们这里仅对一个声道的音频进行分析和处理即可。
注意:.wav 文件的采样频率为44.1KHz ,采样后的量化精度是16位,不过我们不用关心其量化精度,因为在MATLAB 读入后,已将其转换成double 型的浮点数表示。
在获得了对应音频文件的数组后,我们可以对其进行一些基本的分析和处理。
包括:1、 对语音信号进行频域分析,找到语音信号的主要频谱成分所在的带宽,验证为何电话可以对语音信号采用8KHz 的采样速率。
我们主要的设计原理是离散时间的fourier 变换,离散时间的fourier 变换公式为:(1)(1)1()()Nj k Nj X k x j ω--==∑,(1)(1)1()(1/)()Nj k N k x j N X k ω--==∑,其中(2)/i NN e πω-=。
语音信号处理实验报告 (2)
![语音信号处理实验报告 (2)](https://img.taocdn.com/s3/m/ed0bde5b77232f60ddcca168.png)
语音信号处理实验报告实验一1 用Matlab读取一段话音(自己录制一段,最好其中含有汉语四种声调变化,该段话音作为本课实验原始材料),绘制原始语音波形图。
2. 用Matlab计算这段语音的短时平均过零率、短时平均能量和短时平均幅度,并将多个波形同步显示绘图。
3.观察各波形在不同音情况下的参数特点,并归纳总结其中的规律。
clc clc;[x,fs]=wavread('benpao.wav');figureplot(x);axis([0 length(x) min(x) max(x)]);title('原始语音波形')xlabel('时间')f=enframe(x,300,100);[m,n]=size(f);for i=1:menergy(i)=sum(f(i,1:n).^2);mn(i)=sum(abs(f(i,1:n)));endfigureplot(energy);axis([0 length(energy) min(energy) max(energy)]);title('短时能量')figureplot(mn);axis([0 length(mn) min(mn) max(mn)]);title('短时幅度')lingd=zeros(m);for x=1:mfor y=1:n-1temp=f(x,y)*f(x,y+1) ;if temp<= 0lingd(x)=lingd(x)+1;endend%temp1=num(x,1)/300;%count(x)=temp1;endfigureplot(lingd);%axis([0 length(lingd) min(lingd) max(lingd)]);title('短时过零率')子函数:function f=enframe(x,win,inc)%定义函数。
基于MATLAB对语音信号进行分析和处理
![基于MATLAB对语音信号进行分析和处理](https://img.taocdn.com/s3/m/1010f96ef5335a8102d2204d.png)
基于MATLAB对语音信号进行分析和处理一、设计目的1.学会MATLAB的使用,掌握MA TLAB的程序设计方法;2.掌握在Windows环境下语音信号采集的方法;3.掌握数字信号处理的基本概念、基本理论和基本方法;4.掌握MATLAB设计FIR和IIR数字滤波器的方法;5.学会用MA TLAB对信号进行分析和处理。
二、设计过程1、语音信号采集与分析运用windows下的录音机,录制一段自己的话音,时间为两秒。
然后在MATLAB 软件平台下,利用函数wavread对语音信号进行采样,再运用plot函数画出语音信号的时域波形,最后在语音信号频谱分析时运用fft对信号进行快速傅里叶变换,得到频谱特性图形。
人为设计一个固定频率5500Hz的噪声干扰信号。
噪声信号通常为随机序列,在本设计中用正弦序列代替,干扰信号构建命令函数为d=[Au*sin(2*pi*5500*t)]',给出的干扰信号为一个正弦信号,针对上面的语音信号 ,采集了其中一段。
再对噪音信号进行频谱变换得到其频谱图。
2、滤波器设计和运用滤波器进行滤波1 )窗函数和等波纹逼近法设计FIR滤波器及滤波首先根据阻带最小衰减选定窗口类型,然后调用fir1函数设计线性相位FIR数字滤波器,再用freqz函数画出其频谱图形,最后运用fftfilt函数对信号进行滤波。
而等波纹逼近法中则运用remez和remezord直接设计FIR滤波器,然后运用fftfilt函数对信号进行滤波。
2 )双线性变换法社设计IIR数字滤波器及滤波首先将数字滤波器的技术指标运用预畸校正法转换成模拟滤波器的设计指标:Ωph=2/T*tan(wp/2),然后用butter、cheby1设计各种模拟滤波器,再用bilinear函数进行模拟滤波器和数字滤波器之间的转换,最后用filter函数对语音信号进行滤波,并运用函数sound播放滤波后语音。
三、结果及分析1、用MATLAB对原始语音信号进行分析,画出它的时域波形和频谱时域波形和频谱:图1 原始语音信号图2 语音信号频率响应图图3 原始语音信号FFT与信号频谱2、给原始的语音信号加上一个高频余弦噪声,频率为5500hz。
基于MATLAB的语音信号的分析与处理
![基于MATLAB的语音信号的分析与处理](https://img.taocdn.com/s3/m/53b4fcd667ec102de3bd89c9.png)
摘要如何从较多的语音情感特征因素中实现最优化是情感识别过程中的重要环节。
而正交实验设计就是研究多因素多水平一种设计方法,它是根据从全面实验中挑选出部分有代表性的点进行实验。
正交实验设计又称正交设计或多因素优选设计,是一种合理安排、科学分析各实验因素的一种有效的数理统计方法。
它是在实践经验和理论认识的基础上,借助一种规格化的“正交表”,从众多的实验条件中确定出若干个代表性较强的实验条件,科学地安排实验,然后对实验结果进行综合比较,统计分析,探求各因素水平最佳组合,从而得到最优或较优实验方案的一种实验设计方法。
本文介绍分析了正交试验设计的基本思想原理,和对数据的分析方法。
然后对提取的15个语音情感特征因素进行实例应用,即利用正交试验设计找出最优组合,提高情感识别的识别率。
关键字:正交试验;正交表;因素;交互作用;最优组合安徽建筑大学毕业设计(论文)AbstractHow to get optimal emotion recognition from many voice emotional characteristics is an important part of the process, while the orthogonal experimental design is a approach of studying multi-level and multi-factor , which is based on a comprehensive experiment selected from a representative sample of the experiment. Orthogonal experimental design called orthogonal design or multifactor preferred design. It is a standardized "orthogonal".We can get obtain optimal or optimum experimental program from Scientifically arranging experiments and statistical analysing.This article describes the analysis of the basic idea of orthogonal experimental design principles, and data analysis methods. There are 15 examples of application of e orthogonal design to find the optimal combination to improve emotion recognition rate.Keywords: orthogonal experiment; orthogonal larray; factor; interaction; optimal combination目录摘要...................................................... I Abstract ................................................. II 1 绪论. (1)1.1 引言 (1)1.2正交设计的研究现状 (1)1.3 本文主要内容 (2)2 正交实验设计的原理 (3)2.1 正交法常用概念 (3)2.2正交法 (3)3正交试验设计的步骤 (9)3.1 确定试验指标 (9)3.2 确定试验因素并选取适当的水平 (9)3.3 选用正交表 (10)3.4 表头设计 (10)3.5 编制试验方案 (11)4 实验数据分析 (12)4.1 实验数据的综合分析 (12)4.2 实验数据的统计分析 (13)5基于正交试验的特征选择 (19)5.1 问题分析 (19)5.2无交互作用处理 (19)参考文献 (24)致谢 (25)附录一数据处理程序 (26)基于MATLAB的语音信号的分析与处理-基于正交试验的特征选择方法的研究与实现电子与信息工程学院通信工程专业2009级2班邵伟指导教师王坤侠1 绪论1.1 引言如今,科学的快速进步带来各种各样革命性的产品,这些产品不是凭空而生,而是人类科学家经过多次成功与失败的试验总结完善而成的。
基于MATLAB对语音信号进行分析和处理
![基于MATLAB对语音信号进行分析和处理](https://img.taocdn.com/s3/m/28d48223192e45361066f5f0.png)
目录一、摘要 ------------------------------------------------------------ 2二、正文 ------------------------------------------------------------ 31.设计目的和要求----------------------------------------------- 3 2.设计原理----------------------------------------------------- 3(1)采样定理 -------------------------------------------------- 3(2)采样频率 -------------------------------------------------- 3(3)采样位数与采样频率 ---------------------------------------- 33.设计内容------------------------------------------------------ 4 (1)程序源代码: -------------------------------------------- 4 (2)调试分析过程描述 ---------------------------------------- 6 (3)数据、结果和分析 ---------------------------------------- 7三、总结与致谢 ----------------------------------------------------- 10四、参考文献 ------------------------------------------------------- 11一、摘要本次课程设计要求利用MATLAB对语音信号进行分析和处理,要求学生采集语音信号后,在MATLAB软件平台进行频谱分析;并对所采集的语音信号加入干扰噪声,对加入噪声的信号进行频谱分析,设计合适的滤波器滤除噪声,恢复原信号。
基于MATLAB的语音信号分析与处理的课程设计实验报告
![基于MATLAB的语音信号分析与处理的课程设计实验报告](https://img.taocdn.com/s3/m/c83e861f16fc700abb68fc27.png)
目录绪论 (1)正文:一、设计目的及要求 (2)二、设计过程 (2)三、调试分析 (5)四、结果分析与体会 (10)五、参考文献 (11)六、谢辞 (11)绪论数字信号处理(digital signal processing,DSP)是从20世纪60年代以来,随着信息学科和计算机学科的高速发展而迅速发展起来的一门新兴学科。
它的重要性日益在各个领域的应用中表现出来。
简言之,数字信号处理是把信号用数字或符号表示的序列,通过计算机或通用(专用)信号处理设备,用数字的数值计算方法处理(例如滤波、变换、压缩、增强、估计、识别等),以达到提取有用信息便于应用的目的。
数字信号处理的应用包括滤波与变换、通信、语音、语言、图像、图形、消费电子、仪器、工业控制与自动化、医疗、军事等。
其发展方向也是多方面的,包括数字汇聚、远程会议系统、融合网络、数字图书馆、图像与文本合一的信息检索业务、多媒体通信、个人信息终端等。
在本次设计中,就以设计一个数字滤波器系统为目的。
滤波器按频率划分有低通、高通、带通、带阻全通等类型。
一个数字滤波器可以用一个系统函数来表示,若要得到该系统函数,就要得到以z^(-1)升幂排列的传输函数的分子和分母多项式的系数,即向量num、den,而这两个参数由[num den]=butter(N,Wn)、[N,Wn]=buttord(wp,ws,rp,rs)这一函数得出,这是巴特沃思滤波器的设计过程。
由于频率响应的周期性,频率变量以数字频率ω来表示,ω=2π*f/fc,f为模拟域频率,fc为抽样频率,所以数字滤波器设计中必须给出抽样频率。
在这次设计中采用了巴特沃思和切比雪夫两种滤波器,这两种滤波器又分别采用了高通、低通、带通、带阻四种频率特性实现,从横向上和纵向上都可以进行对比,表现出各种滤波器的不同特性。
一、设计目的及要求1.课程设计目的综合运用数字信号处理的理论知识进行频谱分析和滤波器设计,通过理论推导得出相应结论,再利用 MATLAB 作为编程工具进行计算机实现,从而加深对所学知识的理解,建立概念。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
基于MA TLAB的语音信号分析与处理的实验报告一.实验目的综合计运用数字信号处理的理论知识进行频谱分析和滤波器设计,通过理论推导得出相应的结论,培养发现问题、分析问题和解决问题的能力。
并利用MATLAB作为工具进行实现,从而复习巩固课堂所学的理论知识,提高对所学知识的综合应用能力,并从实践上初步实现对数字信号的处理。
此外,还系统的学习和实现对语音信号处理的整体过程,从语音信号的采集到分析、处理、频谱分析、显示和储存。
二.实验的基本要求1.进一步学习和巩固MATLAB的使用,掌握MATLAB的程序设计方法。
2.掌握在windows环境下语音信号采集的方法。
3.掌握数字信号处理的基本概念、基本理论、原理和基本方法。
4.掌握MATLAB设计FIR和IIR数字滤波器的方法。
5.学会用MATLAB对信号进行分析和处理。
三.实验内容录制一段自己的语音信号,(语音信号声音可以理解成由振幅和相位随时间缓慢变化的正弦波构成。
人的听觉对声音的感觉特征主要包含在振幅信息中,相位信息一般不起作用。
在研究声音的性质时,往往把时域信息(波形图)变换得到它的频域信息(频谱),通过研究频谱和与频谱相关联的特征获得声音的特性。
)并对录制的信号进行采样;画出采样后语音信号的时域波形和频谱图;给定滤波器的性能指标,采用窗函数法或者双线性变换设计滤波器,并画出滤波器的频率响应;然后用自己设计的滤波器对采集的信号进行滤波,画出滤波后信号的时域波形和频谱,并对滤波前后的信号进行对比,分析信号发生的变化;回放语音信号。
四.实验的实现(1).语音信号的采集采用windows下的录音机或者手机、其他的软件,录制一段自己的话音,时间控制在一分钟左右;然后在MATLAB软件平台下,利用函数wavread对自己的话音进行采样,记住采样的频率和采样的点数。
通过实现wavread函数,理解采样的频率、采样位数等概念。
下面介绍wavread的使用方法:Wavread函数调用格式如下:y=wavread(flie),读取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中。
(2)语音信号的频谱分析首先画出语音信号的时域波形,然后对话音信号进行频谱分析。
在MATLAB中,可以采用函数fft对信号进行快速傅里叶变换,得到信号的频谱特性,从而加深对频谱特性的理解。
其程序如下:[y,Fs,bits]=wavread('d:\声音片段01.wav');%读出信号,采样率和采样位数Sound(y);Y = fft(y,4096);figure(1);subplot(2,2,1);plot(y);title(' 原时域波形');ylabel('amplitude');xlabel('n');subplot(2,2,2);plot(abs(Y));%对频域取模axis([0,4096,0,3]);%横纵坐标确定title('原频谱特性');%标题ylabel('amplitude');%Y轴显示xlabel('frequency(hz)');%X轴显示程序运行的结果如下图所示:050001000015000-1-0.500.51原时域波形a m p l i t u d e n 010002000300040000123原频谱特性a m p l i t u d e frequency(hz)(3)设计数字滤波器和画出频率响应根据语音信号的特点给出有关滤波器的性能指标:1..低通滤波器性能指标,fp=1000Hz fc=2000Hz As=100db Ap=1db用巴特沃斯滤设计的低通滤波器的程序如下:wp=2*1200/8000; %归一化通带数字频率wpws=2*2000/8000; %归一化阻带数字截止频率ws Rp=0.5; %通带波纹系数RpRs=60; %最小阻带衰减Rs[N,Wn]=buttord(wp,ws,Rp,Rs); %求阶数N 和滤波器截止频率Wn[num,den]=butter(N,Rp); %传输分子和分母的系数[h,w]=freqz(num,den); %求频率响应subplot(2,1,1); %窗口分成2行1列绘图区,第1个区为当前活动区plot(w/pi,abs(h)); %二维连续图形grid; %添加网格title('巴特沃思型低通滤波器的幅频响应'); %加图形说明xlabel('\omega/\pi'); %加X轴说明(/后表示转义字符)ylabel('振幅(幅值)'); %加Y轴说明subplot(2,1,2); %窗口分成2行1列绘图区,第2个区为当前活动区plot(w/pi,20*log10(abs(h))); %二维连续图形grid; %添加网格title('巴特沃思型低通滤波器的幅频响应'); %加图形说明xlabel('\omega/\pi'); %加X轴说明(/后表示转义字符)ylabel('振幅(分贝)'); %加Y轴说明程序运行00.10.20.30.40.50.60.70.80.9100.511.5巴特沃思型低通滤波器的幅频响应ω/π振幅(幅值)00.10.20.30.40.50.60.70.80.91-400-200200巴特沃思型低通滤波器的幅频响应ω/π振幅(分贝)(4)用滤波器对信号进行滤波比较两种滤波器的性能,然后用性能较好的滤波器对采集的 信号进行滤波。
在MATLAB 中,FIR 滤波器利用函数fftfilt 对信号进行滤波,IIR 滤波器利用函数filter 对信号进行滤波。
应用以上滤波器对信号进行滤波:fs=8000;y=wavread('d:\jingjiangxueyuan.wav'); %读取原始语音信号f=filter(num,den,y); %滤波f1=fft(f,7000);subplot(2,1,1)plot(abs(f1)); %画出滤波后的时域图title('滤波后的幅度谱');grid;subplot(2,1,2)plot(angle(f1)); %画出滤波后的时域图title('滤波后的相位谱');grid;wavwrite(f,fs,'d:\jingjiangxueyuan1.wav');其图形如图:01000200030004000500060007000050100150200250滤波后的幅度谱01000200030004000500060007000-4-224滤波后的相位谱(5)比较滤波前后语音信号的波形及频谱把处理后的所有数据存储为声音文件,与原始声音进行比较 比较程序如下:fs=8000;y=wavread('d:\jingjiangxueyuan.wav'); %读取原始语音信号y1=wavread('d:\jingjiangxueyuan1.wav'); %读取滤波后语音信号 yx=fft(y);yx1=fft(y1);subplot(2,1,1)plot(20*log10(abs(yx)));title('滤波前的相对幅度谱');subplot(2,1,2);plot(20*log10(abs(yx1)));title('滤波后的相对幅度谱');滤波前后的幅度谱如下:020004000600080001000012000-100-5050滤波前的相对幅度谱020004000600080001000012000-50050滤波后的相对幅度谱说明:比较上里两个图可以看出,幅度谱走向大致一样,但滤波后的幅度明显不一样,中间频率的幅度为恒定不变,可能的原因为,滤波器设计不符合要求,或者是因为录音的时候过于偏高或者偏低;由上两图可以看出,经过滤波器后的幅度谱没有原来的清晰,原因应该是,滤波器把高频的部分滤掉了,声音比较低沉。
(6)回放语音信号在MATLAB中,函数sound可以对声音进行回放。
其调用格式为:sound(x,fs,bits)可以感觉滤波前后的声音的变化。
五.实验总结及感想《数字信号处理》课程是一门理论性和实践性都很强,它具备高等代数、数值分析、概率统计、随机过程等计算学科的知识; 要求我们学生掌握扎实的基础知识和理论基础。
由数字信号处理课本中的绪论中我们可以知道这门学科又是跟其他学科密切相关,即与通信理论、计算机、微电子技术不可分,又是人工智能、模式识别、神经网络等新兴学科的理论基础之一。
这次实验是用学过的数字信号理论为依据,用MATLAB代码实现,通过这几次的实验,感触特别多,也学到了很多东西。
首先,为了完成这次的课程设计,在图书馆翻阅了很多有关这次设计的参考书,对这些参考书的有关内容都做了认真的分析,了解了一些函数的用法。
其次,通过本次的实验,使我们对信号的采集,处理,传输,显示,存储和分析等有一个系统的掌握和理解。
同时可以看到滤波器在语音处理的重要性,学到了很多滤波器的设计方法,对MATLAB这个软件有了进一步的了解,学了会用 MATLAB 对信号进行分析和处理。
通过综合运用数字信号处理的理论知识进行频谱分析和滤波器设计,通过理论推导得出相应结论,再利用 MATLAB 作为编程工具进行计算机实现,从而加深了对所学知识的理解,建立概念。
对以前在课本上所学的东西有了更深入的理解和掌握。
同时在设计过程中遇到许多问题都是在平时的过程中所未接触到的,尤其是在使用MATLAB的相关程序对语音信号的录制和处理的函数都需要我们自己去查找资料,这加强了我们的动手能力和自觉性,巩固和运用在数字信号处理课程中所学的理论知识和实验技能,掌握最基本的数字信号处理的理论和方法,提高了自己的发现问题,分析问题和解决问题的能力。
再次,在做实验的过程中会遇到很多的困难,在困难面前不要放弃,只要有细心和耐心,坚持下去会达到想要的设计结果。
最后,无论做什么样的实验,都需要要有一定的理论知识作为基础,同时通过这次实验,我对于以前所学的数字信号处理知识有了更深的理解。
当然这次实验也暴露了我的一些问题,比如学习程序设计教程不够快,虽然MATLAB使用的语言和语法都继承于C语言,但还是花了不少时间学习其中的函数,最后才能把实验顺利完成。