精华内容
下载资源
问答
  • 基音提取之短时自相关

    千次阅读 2019-05-10 16:03:37
    短时自相关函数的基音提取方法 对于语音序列x(n),第i帧语音信号为,则短时自相关函数的定义为 k为时间延迟量。 短时自相关函数的重要性质: 1、若是周期信号,周期为T,则也是周期信号,且周期相同。 2、...

                                                  短时自相关函数的基音提取方法

    对于语音序列x(n),第i帧语音信号为x_{i}(m),则短时自相关函数的定义为

    R_{i}(k)=\sum_{m=1}^{N-m}x_{i}(m)x_{i}(m+k)         k为时间延迟量。

    短时自相关函数的重要性质:

    1、若 x^{_{i}}(m)是周期信号,周期为T,则R_{i}(k)也是周期信号,且周期相同。

                                      R_{i}(R)=R_{i}(R+T)

    2、当k=0时,短时自相关函数具有最大值,;在延迟量为0,\pm T\pm 2T......时,周期信号的自相关函数也达到最大值。

    3、短时自相关函数是偶函数。

                                     R_{i}(k)=R_{i}(-k)

    短时自相关基音提取的原理为:比较原始信号与延迟信号之间的相关性来确定基音周期。若延迟量等于基音周期,那么两个信号具有最大相关性;或通过找出其自相关函数最大值之间的距离,即为基音周期的估计值。

    具体步骤如下

    1、分帧处理

    f0min=50,f0max=500,N=128

                                   fl=(L-3*fs/f0_{min})/N

    fl为信号的帧数,fs/f0min=基音周期的最大值,

    2、窗函数选择

    窗函数采用汉宁窗,具体原因参见文章

    3、信号加窗,归一化自相关

                                                   a(t)=(x(t)-u^{_{x}})*w(t)

    ux为语音信号的直流分量,先去除直流分量,然后加窗,然后求其归一化自相关函数

                                                    r^{_{a}}(\tau )=r_{x}(\tau )/r_{0}(\tau )

    4、窗函数归一化自相关

                             r_{w}(\tau )=(1-\frac{|\tau |}{T})(\frac{2}{3}+\frac{1}{3}cos(2\pi \tau /T))+1/(2\pi )sin\frac{2\pi|\tau |}{T}

    5、原信号自相关

                                          r_{x}(\tau )=r_{a}(\tau )/r_{w}(\tau )

    6、维特比算法求信号基音

    求取cost({p_{n}})=-\sum_{n=1}^{N}R_{np_{n}}+\sum_{n=2}^{N}transitionCost(F1,F2)

    并以此递归找出最有基音集

    优缺点:

    1、对于噪声环境下的基音检测比较使用。

    2、基音检测结果会出现二次倍频或二次分频的情况。

    解决办法:

    1、中心消波法自相关基音检测

                           y{_{i}}(n)=\bigl(\begin{smallmatrix} & & \\x_{i}(c)-L &x_{i}(c)>L & \\ 0 &|x_{i}(c)|<L &\\ x_{i}(c)+L &x_{i}(c)<-L \end{smallmatrix}\bigr)

    L为消波电平,一般取信号帧的最大幅度的60%~70%

    实验结果如下:

    更多文章请关注公众号<<音频核>>

     

    展开全文
  • Part3 语音信号的短时时域分析一、帧和加窗的概念二、短时平均能量三、短时平均幅度函数四、短时平均过零率五、短时自相关分析六、基于能量和过零率的语音端点检测七、基音周期估值八、总结 一、帧和加窗的概念 1.短...

    一、帧和加窗的概念

    1.短时分析将语音流分为一段一段来处理,每一段称为一“帧”;
    2.帧长:1030ms,20ms常见;(帧率)帧移:01/2帧长,帧与帧之间的平滑过度;
    在这里插入图片描述
    3.为了减少语音帧的截断效应,需要加窗处理;

    截断效应:将具有不连续点的周期函数(如矩形脉冲)进行傅立叶级数展开后,选取有限项进行合成。当选取的项数越多,在所合成的波形中出现的峰起越靠近原信号的不连续点。当选取的项数很大时,该峰起值趋于一个常数,大约等于总跳变值的9%。这种现象称为截断效应,又叫吉布斯效应。

    矩形窗、Hamming、Hann等窗函数及其比较:
    ①三种窗函数都有低通特性,通过分析三种窗的频率响应幅度特性可以发现:
    ②矩形窗的主瓣宽度最小,旁瓣高度最高,会导致泄露现象,汉明窗的主瓣最宽,旁瓣高度最低,可以有效的克服泄露现象,具有更平滑的低通特性,应用更广泛。

    二、短时平均能量

      由于语音信号的能量随时间而变化,清音和浊音之间的能量差别相当显著。因此,对短时能量和短时平均幅度进行分析,可以描述语音的这种特征变化情况。

       定义n时刻某语音信号的短时平均能量为:
    在这里插入图片描述
    式中,N为窗长,可见短时能量为一帧样点值的加权平方和。特殊地,当窗函数为矩形窗时,有
    在这里插入图片描述
    也可以从另外一个角度来解释。令:在这里插入图片描述

    则短时平均能量可以写成:
    在这里插入图片描述
      上式可以理解为:首先语音信号各个样点值平方,然后通过一个冲激相应为h(n)的滤波器,输出为由短时能量构成的时间序列:
    在这里插入图片描述
        冲激响应的选择或者说窗函数的选择直接影响着短时能量的计算。通常N的选择与语音的基音周期相联系,一般要求窗长为几个基音周期的数量级。由于语音基音频率范围为50-500Hz,因此折中选择帧长为10~20ms。

      短时平均能量的主要用途如下:

      1.可以作为区分清音和浊音的特征参数。实验结果表明浊音的能量明显高于清音。通过设置一个能量门限值,可以大致判定浊音变为清音或者清音变为浊音的时刻,同时可以大致划分浊音区间和清音区间
    
      2.在信噪比比较高的情况下,短时能量还可以作为区分有声和无声的依据
    
      3.可以作为辅助的特征参数用于语音识别中
    

    注意:
      En反映语音信号的幅度或能量随时间缓慢变化的规律。窗的长短对于能否由短时能量反映语音信号的幅度变化,起着决定性影响。
    在这里插入图片描述

    三、短时平均幅度函数

      短时能量的一个主要问题是对信号电平值过于敏感。由于需要计算信号样值的平方和,在定点实现时很容易产生溢出。为了克服这个缺点,可以定义一个短时平均幅度函数来衡量语音幅度的变化:
    在这里插入图片描述
      上式可以理解为w(n)对|x(n)|的线性滤波运算,实现框图如下。与短时能量比较,短时平均幅度相当于用绝对值之后代替了平方和,简化了运算。
    在这里插入图片描述
      Mn与En的比较:

      1.Mn能较好地反映清音范围内的幅度变化;
      2.Mn所能反映幅度变化的动态范围比En好;
      3.Mn反映清音和浊音之间的电平差次于En。
    

    四、短时平均过零率

    1. 概念
      短时平均过零率是语音信号时域分析中的一种特征参数。它是指每帧内信号通过零值的次数。
      ①对有时间横轴的连续语音信号,可以观察到语音的时域波形通过横轴的情况。
      ②在离散时间语音信号情况下,如果相邻的采样具有不同的代数符号就称为发生了过零,因此可以计算过零的次数。
      单位时间内过零的次数就称为过零率。一段长时间内的过零率称为平均过零率。如果是正弦信号,其平均过零率就是信号频率的两倍除以采样频率,而采样频率是固定的。因此过零率在一定程度上可以反映信号的频率信息。短时平均过零率的定义为:
    在这里插入图片描述
    在这里插入图片描述
      用1/2N 作为幅值,考虑了对该窗口范围内的过零数取平均。 另外:考虑到w(n-m)的非零值范围为n-m≥0,即m≤n,以及 n-m≤N-1,故m≥n-N+1,因此短时平均过零率可以改写为:
    在这里插入图片描述
    短时平均过零率的运算图:
    在这里插入图片描述
    2. 性质
    在这里插入图片描述
      从以上可以得出:
    在这里插入图片描述
      因此:短时平均过零率可以用于语音信号请浊音的判断。如果过零率高,语音信号就是清音,如果过零率低,语音信号就是浊音。但有的音,位于浊音和清音的重叠区域,这时,只根据短时平均过零率就不可能来明确地判别清、浊音。

    五、短时自相关分析

    1. 短时自相关函数

       自相关函数用于衡量信号自身时间波形的相似性。之前我的文章有介绍,清音和浊音的发生机理不同,因而在波形上也存在着较大的差异。浊音的时间波形呈现出一定的周期性,波形之间相似性较好;清音的时间波形呈现出随机噪声的特性,杂乱无章,样点间的相似性较差。这样,可以用短时自相关函数来测定语音的相似特性。
       时域离散确定信号的自相关函数定义为:
    在这里插入图片描述
      时域离散随机信号的自相关函数定义为:
    在这里插入图片描述
      若信号为一周期信号,周期为P,则:
    在这里插入图片描述
      上式说明,周期信号的自相关函数也是一个同样周期的周期信号,自相关函数具有下述性质:

    1.对称性:R(k)= R(-k) 
    2.在k = 0处为最大值,即对于所有k来说,|R(k)|≤R(0)
    3.对于确定信号,值R(0)对应于能量,而对于随机信号,R(0)对应于平均功率
    

      上述的第2个性质中,如果是一个周期为P的信号,则在取样处,其自相关函数也是最大值,因此可以根据自相关函数的最大值的位置来估计周期信号的周期值。

    2. 语音信号的短时自相关函数
    采用短时分析方法,定义语音信号短时自相关函数为
    在这里插入图片描述
    因为:
    在这里插入图片描述
    所以:在这里插入图片描述
    定义:
    在这里插入图片描述
    那么短时自相关函数可以写成:
    在这里插入图片描述

      上式表明,序列x(n)x(n-k)经过一个冲激响应为hk(n)的数字滤波器滤波即得到短时自相关函数,所以,短时自相关函数的框图表示为:
    在这里插入图片描述
      也可采用直接运算的方法得到短时自相关函数:
    在这里插入图片描述
      下面来看一下浊音以及清音的短时自相关函数:
    在这里插入图片描述
    浊音和清音的短时自相关函数有如下几个特点:

      1.短时自相关函数可以很明显的反映出浊音信号的周期性。
    
      2.清音的短时自相关函数没有周期性,也不具有明显突出的峰值,其性质类似于噪声。
    
      3.不同的窗对短时自相关函数结果有一定的影响。采用矩形窗时,浊音自相关曲线的周期性显示出比用汉明窗更明显的周期性。其主要原因是加汉明窗后,语音段两端的幅度逐渐下降,从而模糊了信号的周期性。
    

    在这里插入图片描述
      窗长对浊音的短时自相关性有着直接的影响。一方面,由于语音信号的特性是变化的,因此要求N应尽量小。但与之矛盾的另一方面是为了充分反映语音的周期性,又必须选择足够宽的窗,以使得选出的与语音段包含两个以上的基音周期。
      修正的短时自相关函数可以写成:在这里插入图片描述
      因为求和上限是N-1,与k无关,故当k增加时,^Rn(k)值不下降 。

    3. 短时平均幅度差函数
      计算短时自相关函数需要很大的运算量,有时为简化运算,常使用一种与自相关函数有相似作用的另一参量,即短时平均幅度差函数(AMDF)。
    一个周期为P的周期信号,在k=0,±P, 2P, …时,
    在这里插入图片描述
      对于浊音语音,在基音周期的整数倍上,d(n)总是很小,但不是零,因此,我们可以定义短时平均幅度差函数AMDF为:
    在这里插入图片描述
      显然,如果x(n)具有周期P,则当k=0,±P, 2P, …时,rn(k)具有最小值。应该注意的是,取矩形窗是很合适的。

    六、基于能量和过零率的语音端点检测

      在复杂的应用环境下,从信号流中分辨出语音信号和非语音信号,是语音处理的一个基本问题。语音端点检测就是指从包含语音的一段信号中确定出语音的起始点和结束点。正确的端点检测对于语音识别和语音编码系统都有重要的意义,它可以使采集的数据真正是语音信号的数据,从而减少数据量和运算量并减少处理时间。举个例子:微信语音不可能一按讲话就是所说的声音,而是从按下讲话到松开手的过程中其中的某一段或几段是语音,而其他则是噪声或者无声段
      判别语音段的起始点和终止点的问题主要归结为区别语音和噪声的问题。如果能够保证系统的输入信噪比很高(即使最低电平的语音的能量也比噪声能量要高),那么只要计算输入信号的短时能量就基本能够把语音段和噪声背景区别开来。但是,在实际应用中很难保证这么高的信噪比,仅仅根据能量来判断是比较粗糙的。因此,还需进一步利用短时平均过零率进行判断,因为清音和噪声的短时平均过零率比背景噪声的平均过零率要高出好几倍。这次主要介绍基于能量和过零率的语音端点检测方法——两级判别法。
    两级判别法采用双门限比较法,如图:
    在这里插入图片描述
    第一级判决:
      1.先根据语音短时能量的轮廓选取一个较高的门限T1,进行一次粗判:语音起止点位于该门限与短时能量包络交点所对应的时间间隔之外(即AB段之外)。
      2.根据背景噪声的平均能量确定一个较低的门限T2,并从A点往左、从B点往右搜索,分别找到短时能量包络与门限T2相交的两个点C和D,于是CD段就是用双门限方法根据短时能量所判定的语音段。
    第二级判决:
      以短时平均过零率为标准,从C点往左和从D点往右搜索,找到短时平均过零率低于某个门限T3的两个点E和F,这便是语音段的起止点。门限T3是由背景噪声的平均过零率所确定的。
      这里要注意,门限T2,T3都是由背景噪声特性确定的,因此,在进行起止点判决前,通常都要采集若干帧背景噪声并计算其短时能量和平均过零率,作为选择T2和T3的依据。当然,T1,T2,T3,三个门限值的确定还应当通过多次实验。

    七、基音周期估值

      基音周期是表征语音信号本质特征的参数,属于语音分析范畴,只有准确分析并且提取出语音信号的特征参数,才能够利用这些参数进行语音编码、语音合成和语音识别等处理。语音编码的压缩率高低、语音合成的音质好坏及语音识别率的高低,也依赖于语音信号分析的准确性和精确性。因此基音周期估值在语音信号处理应用中具有十分重要的作用。语音信号基音周期估值的方法很多,最基本的方法有:基于短时自相关法的基音周期估值基于短时平均幅度差函数的基音周期估值

    1. 基于短时自相关法的基音周期估值:
      如果x(n)是一个周期为P的信号,则其自相关函数也是周期为P的信号,且在信号周期的整数倍处,自相关函数取最大值。语音的浊音信号具有准周期性,其自相关函数在基音周期的整数倍处取最大值。计算两相邻最大峰间的距离,就可以估计出基音周期。观察浊音信号的自相关函数图,其中真正反映基音周期的只是其中少数几个峰,而其余大多数峰都是由于声道的共振特性引起的。因此,为了突出反映基音周期的信息,同时压缩其他无关信息,减少运算量,有必要对语音信号进行适当预处理后再进行自相关计算以获得基音周期。
      预处理的两种方法:
    1.先对语音信号进行低通滤波,再进行自相关计算。
    2.先对语音信号进行中心削波处理,再进行自相关计算。

    注解:削波
    1.中心削波
    削波后的序列用短时自相关函数估计基音周期,在基音周期处峰值更加尖锐, 可减少倍频或半频错误。中心削波函数为:
    在这里插入图片描述
    削波前后语音信号对比图
    在这里插入图片描述
    削波前后修正自相关对比图
    在这里插入图片描述
    2.三电平削波
    为了克服短时自相关函数计算量大的问题,在中心削波法的基础上,还可以采用三电平削波法,削波函数为:
    在这里插入图片描述
    三电平削波前后语音信号对比图
    在这里插入图片描述
    三电平削波前后修正自相关对比图
    在这里插入图片描述

    2. 基于短时平均幅度差函数AMDF法的基音周期估值
       如果信号x(n)是标准的周期信号,则相距为周期的整数倍的样点上的幅度值是相等的,二者差值为零。对于浊音语音,在基音周期的整数倍上,这个差值不是零,但总是很小,因此,我们可以通过计算短时平均幅度差函数中两相邻谷值间的距离来进行基音周期估值。
       这里使用修正的短时平均幅度差函数并加矩形窗,得到:
    在这里插入图片描述

    AMDF函数与短时自相关函数的不同是:
    1.自相关函数进行基音周期估计时寻找的是最大峰值点的位置。
    2.AMDF寻找的是它的最小谷值点的位置。
    3.由于清音没有周期性,所以它的自相关函数和平均幅度差函数均不具有准周期性的峰值或谷值。

    3. 基音周期估值的后处理
       语音信号中的浊音信号的周期性从波形上观察可以看得很明显,但是其形状比较复杂,这使得基音检测算法很难做到处处准确可靠。在提取基音的过程中,无论采用哪种方法提取的基音频率轨迹与真实的基音频率轨迹都不可能完全吻合。实际情况是大部分段落吻合,而在一些局部段落和区域中有一个或几个基音频率估计值偏离,甚至远离正常轨迹,通常是偏离到正常值的2倍或1/2处,即实际基音频率的倍频或分频处,称这种偏离点为基音轨迹的“野点”。
       为了去除这些“野点”,对求得的基音轨迹进行平滑后处理是非常必要的。语音信号的基频通常是连续缓慢变化的,因此,用某种平滑技术来纠正这些“野点”是可以的。常用的平滑技术主要有:中值滤波平滑处理、线性平滑、动态规划平滑处理。

    1.中值平滑处理
    基本原理:设x(n)为输入信号,y(n)为中值滤波器的输出,采用一滑动窗,则n0处的输出值y(n0)就是将窗的中心移到n0处时窗内输入样点的中值。即在n0点的左右各取L个样点。连同被平滑点共同构成一组信号采样值(共(2L+1)个样值),然后将这(2L+1)个样值按大小次序排成一队,取此队列中的中间者作为平滑器的输出。L值一般取为1或2,即中值平滑的“窗口”一般包括3至5个样值,称为3点或5点中值平滑。
    2.线性平滑处理
    线性平滑是用滑动窗进行线性滤波处理
    在这里插入图片描述
    3.组合平滑处理
    为了改善平滑的效果可以将两个中值平滑串接,图(a)所示是将一个5点中值平滑和一个3点中值平滑串接。另一种方法是将中值平滑和线性平滑组合,如图(b)所示。为了使平滑的基音轨迹更为贴近,还可以采用二次平滑的算法。
    在这里插入图片描述
    在这里插入图片描述

    4.基音周期估值后处理的MATLAB实现
       如本实验所用的语音样本:
       用Cool Edit在普通室内环境下录制的女声“我到北京去”,采样频率为8kHz,单声道,将语音信号分为若干帧,每帧长220个样点,相邻帧交叠110个样点,采用基于能量的基音周期检测算法求出基音周期,并将原始基音周期保存为“zhouqi.txt”文件,用程序对原始基音周期进行平滑处理。
       各种组合平滑算法得到的基音周期轨迹:
    在这里插入图片描述

    八、总结

    本章重点
    1.常用窗函数及其特点。
    2.短时自相关分析的作用。
    3.哪些特征能用于分辨浊音信号和清音信号?
    4.基音周期估值。

    展开全文
  • 在上次录制的语音信号基础上,进行语音信号的短时分析,主要涉及到语音信号的短时幅值、短时过零率和短时自相关分析。使用矩形窗和汉明窗两种窗函数进行计算分析和比较,同时计算平均短时幅值和平均短时过零率。 ...

    在上次录制的语音信号基础上,进行语音信号的短时分析,主要涉及到语音信号的短时幅值、短时过零率和短时自相关分析。使用矩形窗和汉明窗两种窗函数进行计算分析和比较,同时计算平均短时幅值和平均短时过零率。

    声母

    在这里插入图片描述

    韵母

    在这里插入图片描述
    测试代码下载

    展开全文
  • 对于语音来说,短时自相关函数分析是一个重要的方法,能够用来求得浊音的基音周期,也可以用来求得语音识别中的特征参数。它的短时自相关函数为:   但是,在计算短时自相关时,窗选语音段为有限长度N,...

    对于语音来说,短时自相关函数分析是一个重要的方法,能够用来求得浊音的基音周期,也可以用来求得语音识别中的特征参数。它的短时自相关函数为:

             

    但是,在计算短时自相关时,窗选语音段为有限长度N,而求和上限为N-1-k,因此当k增加时可用于计算的数据就越来越少了,从而导致k增加时自相关函数的幅度减小。为了解决这个问题,提出了语音修正的短时自相关。修正的短时自相关函数,其定义如下:



         为了用Matlab计算一帧语音的自相关序列,可以采用Matlab中提供的xcorr和autocorr函数,也可以自己按照上面的公式动手编写。

    代码如下:

    加上frame1帧长为256的信号。

    %用修正的自相关函数计算自相关,采用两个不同长度的窗口

    N=128; %
    K=128;
    A=[];
    for k=1:K
        sum=0;
        for m=1:N
            sum=sum+frame1(m)*frame1(m+k-1);
        end
        A(k)=sum;
    end
    for k=1:K
        A1(k)=A(k)/A(1);
    end
    subplot(4,1,2);
    plot(A1);
    title('修改的自相关函数求自相关');

    该方法计算得出的自相关序列只有128个点,但是如果想得到更多的点呢? 可是用Matlab提供的函数xcorr和autocorr可以计算数量为帧长256个自相关序列,其中xcorr计算出来的为对称序列,需要去掉负延迟(lag)的自相关序列。而autocorr只取了一边,不是对称的。

    下面介绍下xcorr与autocorr的具体区别:

    1.xcorr

    C=xcorr(A,B),求向量A与B的互相关系数。如果A和B都是长度为M的向量,则返回2*M-1个胡相关系数C。
    如果A和B的长度不一样,短的向量补0,然后计算互相关。如果A是行向量,C也是行向量。

    xcorr(A),如果A是一个向量,则求自相关序列。如果A是一个M*N的矩阵,则求出的结果为2M-1行N^2列的自相关序列。延迟为0
    的点位于该序列的中间。


    xcorr(A,MaxLag),MaxLag=M-1,M为向量A的长度。求延迟为-MaxLag到MaxLag之间的相关函数。


    [c,lags]=xcorr(A,MaxLag,ScaleOpt);返回的lags为延迟下标


    ScaleOpt为归一化选项:'biased':自相关序列乘以1/M ;‘unbiased’:自相关序列乘以 1/(M-abs(lags))
     'coeff':归一化序列让延迟为0的自相关序列为1.
    ‘none’:不归一化


    例子: s=[1  2  3];  
    r=xcorr(s);
     r =3.0000    8.0000   14.0000    8.0000    3.0000
    上面的矩阵,M=3,最后得到5个结果,其中第三个是自己和自己相乘,最后相加的结果,值最大1*1+2*2+3*3=14。而第二个和
    第四个分别是间隔正负1的结果也就是1*2+2*3=8,2*1+3*2=8。第1个和第五个分别是间隔正负2,也就是1*3=3,3*1=3。

    可见:xcorr默认的MaxLag=M-1=2.ScaleOpt默认为none.
    MaxLag=2;
    r=xcorr(s,MaxLag,'biased');
    r =1.0000    2.6667    4.6667    2.6667    1.0000
    相当于乘以1/3


    MaxLag=2;
    [r,lags]=xcorr(s,MaxLag,'unbiased');
     r=3.0000    4.0000    4.6667    4.0000    3.0000
    abs(lags)= 2 1 0 1 2
    相当于乘以1/(M-abs(lags)),第一个为1/(3-2)=1; 1/(3-1); 1/(3-0);1/(3-1);1/(3-2)

    MaxLag=2;
    [r,lags]=xcorr(s,MaxLag,'coeff'); (注该方法相当于修正的自相关函数)
     r=0.2143    0.5714    1.0000    0.5714    0.2143
    相当于r=r./r(M)  即3/14=0.2143    8/14=0.5714,  14/14=1.00;

    2.autocorr
    [acf,lags,bounds] = autocorr(y) 
    [acf,lags,bounds] = autocorr(y,numLags,numMA,numSTD)
    计算随机时间变量y的自相关函数,当没有输出参数,将画出在置信区间的自相关函数。
     numLags:为自相关函数的延迟,默认为min[20,length(y)-1];该函数忽略了延迟小于0的序列。


    下面用修正的自相关函数和xcorr,autocorr来计算一帧语音的自相关序列

    代码如下:

    [plain] view plaincopy
    1. clc;  
    2. clear all;  
    3. [y,fs,nbits]=wavread('1b.wav');  
    4. frameSize=256;  
    5. overLap=128;  
    6. lag=255;  
    7. frameMat=buffer2(y,frameSize,overLap);  
    8. [ndim,nFrame]=size(frameMat);  
    9. frame1=frameMat(:,50);  
    10. subplot(4,1,1);  
    11. %plot([1:frameSize]/fs,frame1);  
    12. %画出该语音帧的时域波形图  
    13. plot([1:frameSize],frame1);  
    14.   
    15. %用修正的自相关函数计算自相关,采用两个不同长度的窗口  
    16. N=128;  
    17. K=128;  
    18. A=[];  
    19. for k=1:K  
    20.     sum=0;  
    21.     for m=1:N  
    22.         sum=sum+frame1(m)*frame1(m+k-1);  
    23.     end  
    24.     A(k)=sum;  
    25. end  
    26. for k=1:K  
    27.     A1(k)=A(k)/A(1);  
    28. end  
    29. subplot(4,1,2);  
    30. plot(A1);  
    31. title('修改的自相关函数求自相关');  
    32. %xcorr求自相关时,没有减去均值,没有归一化,而autocorr求自相关是减去了均值也做了归一化处理  
    33. %%%%%xcorr不减去均值求自相关  
    34.   
    35. [c,lags]=xcorr(frame1,lag, 'unbiased'); %unbiased估计不会衰减,默认的最大lag为frameSize-1;  
    36. %d=c./c(lag+1);%归一化,除以能量 已经用1/(M-abs(lags))进行了归一化  
    37. subplot(4,1,3);  
    38. plot(lags(lag+1:end),c(lag+1:end));  
    39. %axis([0,256,-1,1]);  
    40. title('xcorr求自相关unbiased(没有减去均值)');%该函数实现本身没有减掉均值做相关  
    41.   
    42.   
    43.   
    44.   
    45. [c,lags]=xcorr(frame1,lag, 'biased'); %unbiased估计不会衰减,默认的最大lag为frameSize-1;  
    46. %d=c./c(lag+1);%归一化,除以能量 已经用1/(M-abs(lags))进行了归一化  
    47. subplot(4,1,4);  
    48. plot(lags(lag+1:end),c(lag+1:end));  
    49. %axis([0,256,-1,1]);  
    50. title('xcorr求自相关biased(没有减去均值)');%该函数实现本身没有减掉均值做相关  
    51.   
    52. [c,lags]=xcorr(frame1,lag, 'coeff');   
    53. %d=c./c(lag+1);%归一化,除以能量 已经用1/(c(lag+1))进行了归一化  
    54. figure;  
    55. subplot(4,1,1);  
    56. plot(lags(lag+1:end),c(lag+1:end));  
    57. %axis([0,256,-1,1]);  
    58. title('xcorr求自相关coeff(没有减去均值)');%该函数实现本身没有减掉均值做相关  
    59.   
    60. %%%%%xcorr减去均值求自相关  
    61. frame2=frame1-mean(frame1);%减掉均值  
    62. [c1,lags1]=xcorr(frame2,lag, 'unbiased'); %unbiased估计不会衰减,默认的最大lag为frameSize-1;  
    63. %d1=c1./c1(lag+1);%归一化,除以能量  
    64. %figure;  
    65. subplot(4,1,2);  
    66. plot(lags1(lag+1:end),c1(lag+1:end));  
    67. %axis([0,256,-1,1]);  
    68. title('xcorr求自相关unbiased(减去均值)');%该函数实现本身没有减掉均值做相关  
    69.   
    70.   
    71.   
    72.   
    73. [c1,lags1]=xcorr(frame2,lag, 'coeff'); %unbiased估计不会衰减,默认的最大lag为frameSize-1;  
    74. %d1=c1./c1(lag+1);%归一化,除以能量  
    75. %figure;  
    76. subplot(4,1,3);  
    77. plot(lags1(lag+1:end),c1(lag+1:end));  
    78. %axis([0,256,-1,1]);  
    79. title('xcorr求自相关coeff(减去均值)');%该函数实现本身没有减掉均值做相关  
    80.   
    81.   
    82. %%%%用auotcorr求自相关  
    83. [c2,lags2,bound]=autocorr(frame1,lag);  
    84. subplot(4,1,4);  
    85. plot(lags2(1:end),c2(1:end));  
    86. %axis([0,256,-1,1]);  
    87. title('autocorr求自相关');%该函数减掉了均值在做相关,最后做了归一化  

    如下图所示:

    从上图可以看出autocorr(y)求得的结果相当于xcorr(y-mean(y),MaxLag,'coeff')的结果。

    展开全文
  • 语音信号分析之短时相关分析

    千次阅读 2019-10-14 15:22:23
    短时相关分为短时自相关和短时负相关。相关函数用于测定两个信号的时域相似性,语音中主要研究自相关,可以分析语音波形的同步性,周期性等。短时自相关框图如图所示: 2. 短时相关提取流程 首先对语音加窗,...
  • 语音信号短时时域分析

    千次阅读 2020-03-30 18:42:16
    短时自相关分析 说明 语音信号的分帧处理,实际上就是对各帧进行某种变换或运算。 T[ ]:表示这种变换或运算 x(n):输入语音信号 w(n):窗序列 h(n):是与w(n)有关的滤波器 则各帧经处理后的输出可以表示为: 几种...
  • Python语音基础操作--3.2短时时域分析

    千次阅读 2020-04-27 17:30:02
    常用的时域参数有短时能量,短时过零率,短时自相关系数和短时平均幅度差函数等。 短时能量与短时平均幅度 设第nnn帧语音信号xn(m)x_n(m)xn​(m)的短时能量用EnE_nEn​表示: En=∑m=1Nxn2(m)E_n=\sum\limits_{m=1...
  •  人在发浊音,气流通过声门使声带产生张弛振荡式振动,产生一股准周期脉冲气流,这一气流激励声道就产生浊音,又称有声语音,它携带着语音中的大部分能量。这种声带振动的频率称为基频,相应的周期就称为基音周期
  • 又见面了……!继续回顾上次的内容,上次主要是说语音的预处理,预处理包括预加重,加窗分帧。其实还是不难的,主要考虑... 短时时域分析包括短时能量,短时过零率,短时自相关函数,短时平均幅度差函数等。下面一个
  • 如何理解自相关和偏自相关图(最全面的讲解)

    万次阅读 多人点赞 2019-07-10 11:25:26
    前几篇的时间序列预测的文章中,都用到了自相关(ACF)和偏自相关(PACF)图,但是理解起来还是存在一些问题。今天就针对这2个概念,重点进行了解和学习。 数据集:澳大利亚墨尔本10年最低气温 链接: ...
  • 短时傅里叶分析:spectrogram函数

    万次阅读 多人点赞 2016-12-25 11:19:34
    功能:使用短时傅里叶变换得到信号的频谱图。 语法: [S,F,T,P]=spectrogram(x,window,noverlap,nfft,fs) [S,F,T,P]=spectrogram(x,window,noverlap,F,fs) 说明:当使用时无输出参数,会自动绘制频谱图;有输出参数...
  • 时频分析:短时傅里叶变换应用

    千次阅读 2018-06-06 14:11:51
    目录: 前言 实验环境 Matlab spectrogram函数 1语法 ...想要复习原理的同学,可以参照一下这篇:短时傅里叶分析(1) 想要熟悉函数语句的同学: 基础的可以参见前面的:短时傅里叶实现(1) ...
  • 短时傅里叶变换原理解

    万次阅读 多人点赞 2016-11-05 22:22:20
    前一段时间项目需要学习了短时傅里叶变换,今天我来总结一下现阶段对短时傅里叶变换的理解。  短时傅里叶变换是最常用的一种时频分析方法,它通过时间窗内的一段信号来表示某一时刻的信号特征。在短时傅里叶变换...
  • 短时时域分析

    千次阅读 2019-08-15 12:28:28
    短时时域分析 语音信号的时域分析就是分析和提取语音信号的时域参数。进行语音分析时,最先接触到并且也是最直观的是它的时域波形。语音信号本身就是时域信号,因而时域分析是最早使用,也是应用最广泛的一种分析...
  • 防火墙的长连接和连接相关命令

    千次阅读 2014-03-07 01:58:09
    防火墙的长连接和连接介绍相关命令与操作,防火墙的长连接和连接firewall session aging-time tcp (?察看时间) [SecBlade_FW]display firewall session aging-time Firewall aging-time value information: ...
  • 自相关函数的对比 ...所以采用了与自相关函数具有类似作用的参量,就是短时平均幅度差函数(AMDF)。 计算方法 平均幅度差函数的事实基础:如果信号是完全的周期信号(设周期为Np),那么相距为周期的整数倍...
  • 傅里叶变换&短时傅里叶变换&小波变换

    万次阅读 多人点赞 2016-05-03 11:26:36
    傅里叶变换&短时傅里叶变换&小波变换
  • 什么是链接 为什么要用链接(引用) 如何生成链接 实现 代码 演示 前言 前段时间做支付的时候,要生成可供微信和支付宝扫描的支付二维码,二维码里存储的也就是一个链接,但是可能是因为链接比较长的...
  • 时频分析:短时傅里叶变换(1)

    万次阅读 多人点赞 2018-05-31 11:23:51
    2短时傅里叶变换(窗式傅里叶变换) 3小波部分 4补充部分 前言 最近需要对处理的数据做时频分析,因此恶补了一下相关的知识,光是学习并没有用处,因此,总结了一下自己的学习经验,写下了这篇...
  • 目录: 前言 实验环境 Matlab spectrogram函数 1语法 2使用说明 3代码如下 3.1谱图聚集和门限设置 ...想要复习原理的同学,可以参照一下这篇:短时傅里叶分析 ...中阶的可以参见前面的:短时傅里叶实现...
  • spectrogram函数做短时傅里叶分析

    万次阅读 2017-09-02 16:21:34
    之前以为时频分析的函数都在时频分析工具箱里,而matlab已经不自带这个工具箱了...今天偶人发现原来matlab自带了短时傅里叶变换的分析函数,老版本的matlab是specgram函数,新的改成了spectrogram函数,虽然一说到时频
  • 长连接与连接  所谓长连接,指在一个TCP... 连接是指通信双方有数据交互,就建立一个TCP连接,数据发送完成后,则断开此TCP连接,一般银行都使用连接。  比如http的,只是连接、请求、关闭,过程
  • Spectrogram 函数做短时傅里叶分析

    千次阅读 2014-03-14 09:30:00
    正好要用到,mark 学习之。 原文出自: http://blog.sina.com.cn/s/blog_6163bdeb0102dwfw.html spectrogram函数做短时傅里叶分析   (2011-11-17 15:52:23) ...短时傅里叶变换
  • STFT短时傅里叶变换的实现

    万次阅读 2017-04-24 18:53:59
    本科毕设做雷达微动的时频分析,最常用的就是STFT了。matlab已经有了时频分析工具箱,调用里面的tfrstft函数即可轻松实现。今天看了源代码感觉写的比较复杂,于是结合微动,尝试自己实现一下。  STFT是在...
  • 信号处理:自相关和互相关

    万次阅读 2015-04-12 20:43:02
    1. 首先说说自相关和互相关的概念。  这个是信号分析里的概念,他们分别表示的是两个时间序列之间和同一个时间序列在任意两个不同时刻的取值之间的相关程度,即互相关函数是描述随机信号x(t),y(t)在任意两个不同...
  • 基于MATLAB短时傅里叶变换和小波变换的时频分析

    万次阅读 多人点赞 2016-12-04 18:03:34
    本文主要给定一小段音频,通过短时傅里叶变换和小波变换制作时频图。 0、准备工作 首先先准备音频,预先用ffmpeg切割一段时长为1s的音频,音频的采样率为44100,但采样到的点数为46076个点,时长约为1.04s。   1...
  • 频域能量相等(parseval定理) 在 物理学 和 工程学 中, 帕塞瓦尔定理通常描述如下: 帕塞瓦尔定理的此表达形式解释了波形x(t)依时间域t累积的总能量与该波形的傅立叶变换X(f)在频域域f累积的总能量相等。 对于...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 374,675
精华内容 149,870
关键字:

短时自相关