语音信号是一个非稳态的。时变的信号。但在“短时间”范围内可以认为语音信号是稳态的、时不变的。这个短时间一般值10~30ms。由于有这个特性,故常把语音信号称为“准稳态”的信号。这个“准稳态”的特性构成了语音信号的“短时分析技术”。
   在短时分析中,将语音信号分为一段一段地来分析其特征参数,其中每一段称为一“帧”,帧长一般取10~30ms。这样,对于整体的语音信号来讲,每一帧特征参数组成了特征参数时间序列。
   不论分析什么参数以及蚕蛹什么分析方法,在按帧进行语音分析、提取语音参数之前,必须进行预处理,如语音信号的数字化、预加重、加窗和分帧等。

1、 MATLAB中的语音信号分帧

   在分帧中,往往设置在相邻两帧之间有一部分重叠。其原因是:语音信号是时变的,在短时范围内特征变化较小,所以作为稳态来处理;但超出这短时范围语音信号就有变化了。在相邻两帧之间基因发生了变化,如正好是两音节之间,或正好是声母向韵母过渡,等等,这时,其特征参数有可能变化较大,但为了使特征参数平滑地变化,在两个不重叠的帧之间插一些帧开提取特征参数,这就形成了相邻帧之间有重叠部分,如图所示。

   设读入语音文件的数据存放在y中,y长为N,采样频率为fs,取每帧长为wlen。在图中给出的语音段正发生在两个音节间过渡区,基因发生着变化。如果相邻两帧不重叠,给出的基因可能有一个跳变。为了使其平稳过渡,在两帧之间再插一帧或几帧,这样在相邻两帧之间就有重叠了。后一帧对前一帧的位移量(简称帧移)用inc表示,,相邻两帧之间的重叠部分为overlap=wlen-inc.
  对于长为N的语音信号按下式分帧:
fn=(N−overlap)/inc=(N−wlen+inc)/inc =(N−wlen)/inc+1 (89)(89)fn=(N−overlap)/inc=(N−wlen+inc)/inc=(N−wlen)/inc+1\begin{align} & fn=(N-overlap)/inc=(N-wlen+inc)/inc \ & =(N-wlen)/inc+1 \ \end{align}
数据将被分为fn帧,每一帧在数据y中开始的位置为
startindex=(0:(nf−1))∗inc+1startindex=(0:(nf−1))∗inc+1startindex=(0:(nf-1))*inc+1
这样就可以进行分帧了。
   在MATLAB中有分帧函数 enframe,segment,buffer2,frame等,enframe是voicebox中的函数,应用比较多,现介绍如下。

%名称:enframe
%功能:把语音信号按帧长和帧移进行分帧。
%调用格式:f=enframe(x,win,inc)function f=enframe(x,win,inc)nx=length(x(:));            % 取数据长度
nwin=length(win);           % 取窗长
if (nwin == 1)              % 判断窗长是否为1,若为1,即表示没有设窗函数len = win;               % 是,帧长=win
elselen = nwin;              % 否,帧长=窗长
end
if (nargin < 3)             % 如果只有两个参数,设帧inc=帧长inc = len;
end
nf = fix((nx-len+inc)/inc); % 计算帧数
f=zeros(nf,len);            % 初始化
indf= inc*(0:(nf-1)).';     % 设置每帧在x中的位移量位置
inds = (1:len);             % 每帧数据对应1:len
f(:) = x(indf(:,ones(1,len))+inds(ones(nf,1),:));   % 对数据分帧
if (nwin > 1)               % 若参数中包括窗函数,把每帧乘以窗函数w = win(:)';            % 把win转成行数据f = f .* w(ones(nf,1),:);  % 乘窗函数
end

   说明:输入参数x是语音信号;win是帧长或窗函数,若为窗函数,帧长便取传函数长;inc是帧移。输出参数f是分帧后的数组,将为帧数x帧长。

2、语音分析中的窗函数

   在语音分析中常用的窗函数有矩形窗、海宁(Hanning)窗和汉明(Hamming)窗。

表中ΔωΔω\Delta \omega 是谱分析时的角频率分辨率。从表中可以看出,矩形窗主瓣的宽度最窄,但第一旁瓣的衰落最小。也就是说,它的频谱泄露要比另外两种窗函数大。在语音分析中,可根据不同情况选择不同的窗函数。

基于MATLAB的语音信号的时域特性分析(一)——分帧、窗函数相关推荐

  1. Matlab语音采集与读写程序,基于MATLAB的语音信号录制采集和分析的程序设计

    理 论广 角 ● I 基于 MATLAB的语音信号录制采集和分析的程序设计 刘 晓炯 (西北民族大学电气工程学院 甘肃 兰州I 730030) [摘 要]语音信号处理技术是语音处理领域中新近发展起来的 ...

  2. 判断清浊音 matlab,基于MATLAB的语音信号的清浊音分析.doc

    基于MATLAB的语音信号的清浊音分析 目录 1 语音信号概述1 1.1 语音信号的基本组成1 1.2 语音信号的"短时谱"1 1.3 基音周期2 1.4 短时分析技术2 2 语音 ...

  3. 频域参数 matlab,基于MATLAB的语音信号时频域参数分析

    22 科技广场 2007.9 基于MATLAB的语音信号时频域参数分析 the Character Analysis of Speech Signal with Time and Frequency ...

  4. 判断清浊音 matlab,基于MATLAB的语音信号的清浊音分析.docx

    目录 TOC \o "1-5" \h \z HYPERLINK \l "bookmark0" \o "Current Document" 1 ...

  5. 《数字语音处理》- 1. 基于MATLAB的语音信号时域特征分析

    声明 本文仅在CSDN发布,其他均为盗版.请支持正版! 正版链接: https://blog.csdn.net/meenr/article/details/117629753 基于MATLAB的语音信 ...

  6. 基于matlab 的语音信号分析和处理,基于matlab_的语音信号分析和处理

    基于matlab_的语音信号分析和处理 1 基于MATLAB 的语音信号分析和处理 福建师范大学协和学院 信息技术系 电子信息科学与技术专 124122006028 王祯飞 指导老师 黄小芬[摘要]本 ...

  7. 基于matlab的语音信号滤波处理

    基于matlab的语音信号滤波处理 摘要:本课程设计的主要目的是在MATLAB环境下,使用窗口设计法设计一个滤波器,并对语音信号进行滤波去噪.开发平台为MATLAB,设计方法为窗口设计法.用麦克风采集 ...

  8. matlab如何采集两路语音信号,基于MATLAB的语音信号采集与处理

    内容介绍 原文档由会员 大雨倾盆 发布 基于MATLAB的语音信号采集与处理 2.4万字 114页 原创作品,已通过查重系统 摘要 语音信号处理作为目前发展最为迅速的信息科学研究领域的核心技术,它是一 ...

  9. 基于matlab的语音信号去噪毕业论文,MATLAB的FIR数字滤波器语音信号的去噪研究和仿真...

    摘要:语音信号作为人类语言交流的重要手段,语音处理的质量直接影响人们的正常通信.本文基于MATLAB对语音信号及加噪信号进行时域和频域分析,设计了FIR数字滤波器,完成对加噪信号滤波的处理.结果表明设 ...

最新文章

  1. Swift3.0语言教程使用路径字符串
  2. 如何解决python中编码错误的问题_【总结】Python 2.x中常见字符编码和解码方面的错误及其解决办法...
  3. 李宏毅机器学习(五)Transformer
  4. 一位36岁女教师关于教职、学术、幸福及正确道路的思考
  5. 推荐系统--联邦学习下的矩阵分解(6)
  6. 【面试那点儿事】囧,分机号的故事
  7. SecureCRT的下载与使用
  8. 斐讯K3路由器TTL快速刷机
  9. eclipse svn插件下载地址
  10. 生活小技巧:自己动手修理希捷 Expansion 移动硬盘
  11. Deep Gait Recognition: A Survey 阅读笔记
  12. 计算机磁盘图标显示异常,Win7磁盘图标显示错误是怎么回事?修复分区磁盘图标异常教程...
  13. 密码学 实现 DES 的工作模式 电码本模式ECB 密码分组链接模式CBC java 实现
  14. jzoj P1285 奶酪厂
  15. libtorch tensor的使用
  16. docker kong环境部署
  17. Google系列②布局平台战略
  18. 互联网电商企业应该办理icp许可证还是edi许可证?
  19. 获取一段时间的日期列表(查询日期列表、本月所有日期)
  20. android 新浪微博登录接口,[Android] 使用新浪微博SDK进行SSO登录

热门文章

  1. 个人高效写作MarkDown博文模板
  2. PyCharm入门教程——在编辑器中使用拖放
  3. MaxCompute助力北斗大数据,千寻位置3秒实现厘米级定位
  4. delphi中等待外部应用程序执行完成后,再继续执行自有代码段
  5. windows操作系统的引导过程描述
  6. 查看centos中mysql的日志的命令_CentOS系统中常用查看日志命令
  7. Oracle的join默认为,Oracle中的三种Join方法详解
  8. Windows下Anaconda2(Python2)和Anaconda3(Python3)的共存
  9. SRIO学习(五)——SerDes Macro(串行解串宏)
  10. mysql io模型_5种网络IO模型