倒谱计算与分析

合集下载

梅尔频率倒谱系数计算

梅尔频率倒谱系数计算

梅尔频率倒谱系数计算
梅尔频率倒谱系数(MFCC)是一种常用于语音信号处理的特征提取方法。

它通过模拟人耳听觉机制,将频率轴上的线性间隔转换为梅尔刻度,再对梅尔频率进行离散余弦变换,得到一组能够描述语音谱图特征的系数。

其中,计算梅尔频率时需要用到一种称为梅尔滤波器组的滤波器组,它们的频率特性类似于三角形,用于模拟不同频段的听觉分辨率。

MFCC 系数的计算步骤如下:
1. 将音频信号进行预处理,如加窗、去噪等。

2. 将预处理后的音频信号进行傅里叶变换,得到幅度谱和相位谱。

3. 将幅度谱转换为功率谱,并将其通过梅尔滤波器组。

4. 取每个滤波器输出的对数值,并通过离散余弦变换得到 MFCC 系数。

5. 对 MFCC 系数进行归一化,去除不必要的信息。

MFCC 系数的应用非常广泛,如语音识别、音乐信息检索、情感识别等领域。

它具有特征提取快速、稳定性好、抗噪性强等优点,因此成为语音信号处理中不可或缺的一部分。

- 1 -。

语音信号的倒谱分析

语音信号的倒谱分析

因为
ˆ X ' (Z ) X ' (Z ) X (Z )
求复倒谱的一种有效的递推算法
ˆ Z[nx(n)] Z (nx(n))Z[ x(n)]
ˆ n( x(n)) {nx(n)} x(n)
n 1
l ˆ ˆ x(n) ( ) x(l ) x(n l ) x(n) x(0) l 0 n 可推导出: ˆ x ( n)
i 1
P
ˆ e(n) s(n) s(n) s(n) ai s(n i) ai s(n i)
i 1 i 0
P
P
线性预测原理


线性预测是目前分析语音信号的最有效的方法之一,分 析的结果是得到一组信号的全极点模型参数,所以又称 为信号参数模型法。 这个方法的基本思想是将被分析信号模型化,即用有限 数目的模型参数来描述信号中的信息,具体来说,将被 分析信号s(n)视为某系统(即模型)的输出,而系统的 输入,在s(n)为确定性信号是采用单位取样序列。在s(n) 为随机信号是采用白噪声序列。
Linear
Prediction
1947年维纳提出; 1967年板仓等人应用于语音分析与合成;
语音信号处理与分析的核心技术
提供了预测功能;
提供了声道模型和声道模型的参数估计方法;
基本思想:
语音样本之间存在相关性,一个语音信号的样本可 以用过去若干个样本的线性组合来逼近;
ˆ s ( n) a i s ( n i )
g jZ
j 0
Q
j
, A( Z ) ai Z i
i 0
P
g j 和ai都是实数,且a0 1。如果能有一种算法,可能根据已知的s (n) 正确的估计出这些参数,那么未知的系统V(Z)便可求得。由于 E ( Z )V ( Z ) S ( Z ),根据V ( Z )和S ( Z )便可以求得E(Z),从而全部解决 解卷的的问题。

复倒谱的基本原理

复倒谱的基本原理

复倒谱的基本原理倒谱(cepstrum)是一种在信号处理领域中常用的技术,用于对信号进行频谱分析和声学特征提取。

它的基本原理是将信号的频谱变换到另一个域,该域被称为倒谱域。

在倒谱域中,信号的频谱特征能够更加凸显,从而便于进行后续的分析和处理。

倒谱的基本原理可以分为以下几个步骤:1.首先,对原始信号进行预加重处理。

这是为了强调信号的高频分量,减少低频分量对信号频谱的影响。

预加重可以通过一阶高通滤波器来实现,可以使用以下差分方程来计算:y[n]=某[n]-α某某[n-1]其中,y[n]为预加重后的信号,某[n]为原始信号,α是预加重的系数,一般取0.95。

2.接下来,对预加重后的信号进行分帧处理。

将信号分成若干小片段,每个片段称为一帧。

分帧可以使用矩形、汉明窗等窗函数来实现,窗函数有助于减少帧之间的边界效应。

3.对每一帧的信号进行傅里叶变换,得到每帧的频谱。

频谱表示了不同频率上的信号成分的幅度信息。

4.对每一帧的频谱取对数,这样可以将频谱的幅度响应转换成对数刻度,使得频谱的动态范围更容易处理。

5.对取对数后的频谱进行傅里叶逆变换,得到该帧信号的倒谱。

倒谱是频谱的对数表示。

6.最后,对所有帧的倒谱取均值,并进行后续的处理和分析。

均值操作可以减小每帧之间的差异,得到更加稳定的倒谱特征。

倒谱技术的应用非常广泛。

在音频处理领域,倒谱可以用于语音识别、音乐分析等任务。

在图像处理领域,倒谱可以用于图像轮廓分析和纹理特征提取等任务。

在信号处理领域,倒谱可以用于信号分类、故障诊断等应用。

总之,倒谱是一种非常有效的信号处理技术,能够将信号的频谱特征更好地显示出来,并方便后续的分析和处理。

通过倒谱分析,我们可以获取到信号的重要频谱信息,从而实现对信号的更深入理解和利用。

复倒谱的基本原理

复倒谱的基本原理

复倒谱的基本原理倒谱(Cepstrum)是一种将频谱信息转换为时间领域的信号分析方法。

它是由美国工程师和数学家Homayoon Beigi于1963年提出的,用于声学和信号处理等领域。

倒谱分析在语音识别、音乐处理、语音合成、语音压缩等许多应用中得到了广泛应用。

倒谱的基本原理是基于信号的频谱和其对数谱之间的转换关系。

其核心思想是通过将频谱信号进行对数运算,然后再进行傅里叶反变换,将其从频率域转换为时间域。

这样,倒谱展示了信号的谐波分量和它们在时间轴上的重复周期。

倒谱的计算步骤如下:1.对原始信号进行傅里叶变换,得到频谱。

傅里叶变换可以将信号从时域转换到频域,得到信号的复数频谱表示。

2.对频谱进行对数运算,得到对数谱。

对数谱可以将原始频谱中的幅度信息转换为对数尺度,增强信号中较小能量的频谱成分。

3.对对数谱进行傅里叶反变换,得到倒谱。

傅里叶反变换将对数谱从频率域转换为时间域,得到倒谱信号。

倒谱的应用:1.语音识别:倒谱分析在语音识别中被广泛应用。

声音信号经过倒谱分析转换为时间域,然后使用模式识别算法对信号进行特征提取和匹配,从而实现语音识别。

2.音乐处理:倒谱分析在音乐处理中可以用于音乐的音高检测、音乐合成和音频特征提取等。

通过对音频信号的倒谱分析,可以提取出音乐中的谐波分量和它们的周期。

3.语音合成:倒谱分析可以提取语音信号中的谐波分量和它们的周期,用于语音合成。

谐波分量可以通过合成滤波器进行生成,从而实现语音信号的合成。

4.语音压缩:倒谱分析可以提取语音信号的谐波分量和周期信息,然后对其进行压缩。

通过压缩倒谱信息,可以实现高效的语音信号传输和存储。

总结:倒谱分析是一种将频谱信息转换为时间领域的信号分析方法。

倒谱的基本原理是通过对频谱进行对数运算和傅里叶反变换,将其从频率域转换为时间域。

倒谱分析在语音识别、音乐处理、语音合成和语音压缩等领域得到了广泛应用。

通过倒谱分析,可以提取信号中的谐波成分和它们的周期信息,从而实现信号的特征提取、合成和压缩。

倒谱计算与分析

倒谱计算与分析

《视频语音处理技术》倒谱计算与分析学院名称:计算机与信息工程学院专业名称:计算机科学与技术年级班级:姓名:学号:计算机与信息技术学院综合性、设计性实验报告一、 实验目的:对语音信号进行同态分析可得到语音信号的倒谱参数。

语音的倒谱是将语音的短时谱取对数后再进行IDFT 得到的,所以浊音信号的激励反映在倒谱上是同样周期的冲激,借此,可从倒谱波形中估计出基音周期。

对倒谱进行低时窗选,通过语音倒谱分析的最后一级,进行DFT 后的输出即为平滑后的对数模函数,这个平滑的对数谱显示了特定输入语音段的谐振结构,即谱的峰值基本上对应于共振峰频率,对于平滑过的对数谱中的峰值进行定位,即可估计共振峰。

对于倒谱计算与分析的设计实验可作如下训练: 1、复倒谱的几种计算方法: 2、最小相位信号法和递归法; 3、基音检测; 4、共振峰检测。

二、实验仪器或设备:windowsXP 下的Matlab 编程环境 三、总体设计(设计原理、设计方案及流程等)1.复倒谱的几种计算方法:在复倒谱分析中,z 变换后得到的是复数,所以取对数时要进行复对数运算。

这时存在相位的多值性问题,称为“相位卷绕”。

设信号为则其傅里叶变换为对上式取复对数为 则其幅度和相位分别为:)()()(21n x n x n x *=)()()(21ωωωj j j e X e X e X ⋅=)(ln )(ln )(ln 21ωωωj j j e X e X e X +=)(ln )(ln )(ln 21ωωωj j j e X e X e X +=)()()(21ωϕωϕωϕ+=)()()(21ωϕωϕωϕ+=上式中,虽然 , 的范围均在 内,但 的值可能超过范围。

计算机处理时总相位值只能用其主值 表示,然后把这个相位主值“展开”,得到连续相位。

所以存在下面的情况:(K 为整数) 此时即产生了相位卷绕。

下面介绍几种避免相位卷绕求复倒谱的方法。

最小相位信号法这是解决相位卷绕的一种较好的方法。

倒频谱分析 (DEMO)

倒频谱分析 (DEMO)

倒频谱分析倒频谱分析也称为二次频谱分析,是近代信号处理科学中的一项新技术,是检测复杂谱图中周期分量的有用工具。

它对于分析具有同族谐频或异族谐频、多成分边频等复杂信号,找出功率谱上不易发现的问题非常有效。

实数倒谱又分为功率倒频谱、幅值倒频谱和类似相关函数的倒频谱。

工程上经常使用的是功率倒频谱和幅值倒频谱。

在语言分析中语音音调的测定、机械振动中故障监察和诊断以及排除回波(反射波)等方面均得到广泛的应用。

若一个测量信号)s(t)x(=,则当两个分量y+tt)(ty是由两个分量)(tx与)(t(s叠加而成的,即)的能量分别集中在不同的频率段时,可用频域分析中的线性滤波或功率谱分析;当所要提取的分量以一定的形状作周期性重复而其中一分量是随时间变化的噪声时,可用时域分析中的信号平均法或相关分析。

这些方法都可有效地处理线性叠加信号。

但是有的信号不是由其分量的线性叠加,例如机床的输出信号是)(ty,激发振动的输入信号是切削力)tty+xhy是(t=即输出)(th描述的,则有)(t(t(x,而机床的动力特性是由脉冲响应))()输入)h的卷积,这是用处理线性叠加信号的方法就不够了。

另外、对于一个(tx与脉冲响应力)(t复杂的功率谱图,有的很难直观看出它的一些特点和变化情况。

而倒谱分析则能很好地处理这类问题,使故障诊断更加便利。

倒频谱是频域函数的傅里叶再变换,与相关函数不同只差对数加权。

对功率谱函数取对数的目的,是使再变换以后的信号能量格外集中,同时还可解析卷积(褶积)成分,易于对原信号的识别。

功率倒谱主要定义为时间信号的功率谱取对数再进行傅里叶逆变换。

通过上述分析可知,倒谱分析技术可适用于:(1)机械故障诊断,对于机械故障信号在频谱图上,出现难以识别的多族调制边频时,采用倒频谱分析技术,可以分解和识别故障频率,分析和诊断产生故障的原因和部位。

在齿轮箱的振动分析中,倒谱分析技术有广泛的应用。

(2)语音和回声分析,求解卷积问题。

复倒谱1

复倒谱1

(2)符号校正问题:
为使取对数有意义,总是计算ln|A|, 若A<0,则计算出的是-x(n)的复倒谱,故需先 判断A的符号。 当x(n)是实序列时
X ( z ) Az r

k 1 k 1 pi
mi
(1 a k z 1 ) (1 bk z ) (1 c k z 1 ) (1 d k z )
j 2 r N j [arg X ( k ) 2 r] N
e
X ( k ) || X ( k ) | e
r的计算
X ( e j ) | A | e j r

k 1 k 1 pi
mi
(1 a k ) (1 bk ) (1 c k ) (1 d k )
k 1 k 1 pi
m0
式中,分子、分母的所有因子,或共轭因子之积都 是大于0 的实数 所以, A的符号与X(ej0)的符号相同 因为X(ej0)表示直流分量,故其符号与实部的符号相同
sign[ A] sign[ X r ( e j 0 )] sign[ X r ( 0 )]
(3)zr对复倒谱的贡献,--r的计算 为了简化计算,可先将zr移去,计算出X(k)后在恢复
若 X (z) X1(z) X 2 (z)
ˆ 则 X ( z ) ln[ X 1 ( z ) X 2 ( z )] ln[ X 1 ( z )] ln[ X 2 ( z )] ˆ 2. X ( z ) 必须是一个真正的z变换
ˆ ˆ 3. 为了 x ( n ) 能唯一地定义,必须为 X ( z ) ln X ( z ) 选择一个收敛域。
复倒谱的性质
设序列x(n)的z变换为:
X ( z ) Az r

语音信号的同态滤波和倒谱分析课件

语音信号的同态滤波和倒谱分析课件
倒谱系数反映了语音信号的动态特征 和声道特征,可以用于语音识别、语 音合成等领域。
倒谱分析的应用
倒谱分析在语音识别领域中应 用广泛,用于提取语音特征, 提高识别准确率。
Hale Waihona Puke 倒谱分析还可以用于语音合成 ,通过对倒谱系数的调整和重 构,实现语音信号的合成。
此外,倒谱分析在语音降噪、 语音增强等领域也有广泛应用 。
语音信号的同态滤波 和倒谱分析课件
目录
• 语音信号的同态滤波 • 语音信号的倒谱分析 • 语音信号的同态滤波与倒谱分析的比较 • 语音信号处理的其他方法 • 语音信号处理的应用前景
01
语音信号的同态滤波
同态滤波的定义
同态滤波是一种信号处理方法,它通过非线性变换将输入信号分解为两部分:包 络信号和调制信号。包络信号表示信号的幅度变化,调制信号表示信号的相位变 化。
01
倒谱分析是一种语音信号处理技 术,通过对语音信号的倒谱变换 ,提取出语音信号的特征信息。
02
倒谱分析通过将语音信号的频谱 转换为倒谱,实现了对语音信号 的频域和时域特征的综合分析。
倒谱分析的原理
倒谱分析基于对语音信号的短时傅里 叶变换(STFT)和逆变换,通过对 频谱取对数后再进行逆变换,得到倒 谱系数。
质量。
05
语音信号处理的应用前景
语音识别
语音识别技术是实现人机语音交互的 关键技术,能够将人的语音转换为文 字或命令,从而实现人机交互。
随着人工智能技术的不断发展,语音 识别技术在智能家居、智能客服、智 能车载等领域的应用越来越广泛,为 人们的生活和工作带来了便利。
语音合成
语音合成技术是将文字转换为语音的技术,广泛应用于语音导航、语音播报、虚拟人物等领域。
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

《视频语音处理技术》倒谱计算与分析学院名称:计算机与信息工程学院专业名称:计算机科学与技术年级班级:姓名:学号:计算机与信息技术学院综合性、设计性实验报告一、 实验目的:对语音信号进行同态分析可得到语音信号的倒谱参数。

语音的倒谱是将语音的短时谱取对数后再进行IDFT 得到的,所以浊音信号的激励反映在倒谱上是同样周期的冲激,借此,可从倒谱波形中估计出基音周期。

对倒谱进行低时窗选,通过语音倒谱分析的最后一级,进行DFT 后的输出即为平滑后的对数模函数,这个平滑的对数谱显示了特定输入语音段的谐振结构,即谱的峰值基本上对应于共振峰频率,对于平滑过的对数谱中的峰值进行定位,即可估计共振峰。

对于倒谱计算与分析的设计实验可作如下训练: 1、复倒谱的几种计算方法: 2、最小相位信号法和递归法; 3、基音检测; 4、共振峰检测。

二、实验仪器或设备:windowsXP 下的Matlab 编程环境 三、总体设计(设计原理、设计方案及流程等)1.复倒谱的几种计算方法:在复倒谱分析中,z 变换后得到的是复数,所以取对数时要进行复对数运算。

这时存在相位的多值性问题,称为“相位卷绕”。

设信号为则其傅里叶变换为对上式取复对数为 则其幅度和相位分别为:)()()(21n x n x n x *=)()()(21ωωωj j j e X e X e X ⋅=)(ln )(ln )(ln 21ωωωj j j e X e X e X +=)(ln )(ln )(ln 21ωωωj j j e X e X e X +=)()()(21ωϕωϕωϕ+=)()()(21ωϕωϕωϕ+=上式中,虽然 , 的范围均在 内,但 的值可能超过范围。

计算机处理时总相位值只能用其主值表示,然后把这个相位 主值“展开”,得到连续相位。

所以存在下面的情况:(K 为整数) 此时即产生了相位卷绕。

下面介绍几种避免相位卷绕求复倒谱的方法。

最小相位信号法这是解决相位卷绕的一种较好的方法。

但它有一个限制条件:被处理的信号想x(n)必须是最小相位信号。

实际上许多信号就是最小相位信号,或可以看作是最小相位信号。

语音信号的模型就是极点都在z 平面单位圆内的全极点模型,或者极零点都在z 平面单位圆内的极零点模型。

设信号x (n )的z 变换为X (z )=N (z )/ D (z ) ,则有根据z 变换的微分特性有若x (n )是最小相位信号,则 必然是稳定的因果序列。

由Hilbert 变换的性质可知,任一因果复倒谱序列都可分解为偶对称分量和奇对称分量之和: 其中这两个分量的傅里叶变换分别为 的傅里叶变换的实部和虚部。

从而可得此即复倒谱的性质3,也就是说一个因果序列可由其偶对称分量来恢复。

如果引入一个)(1ωϕ)(2ωϕ()ππ,-)(ωϕ()ππ,-)(ωΦπωωϕk 2)()(+Φ=)()(ln )(ln )(ˆz D z N z X z X==⎥⎦⎤⎢⎣⎡-=-=-∞-∞=∑)()(ln )(ˆ)(ˆz D z N dz d z z X dzd z z n x n nn [])()()()()()(z D z N z D z N z N z D z'-'-=)(ˆn x )(ˆ)(ˆ)(ˆn x n x n xo e +=[]2/)(ˆ)(ˆ)(ˆn x n x n xe -+=[]2/)(ˆ)(ˆ)(ˆn x n x n xo --=)(ˆn x )(ˆ)(ˆ)(ˆ)(ˆωωωωj Ij R jn n j e X j e X e n x e X +==-∞-∞=∑⎪⎩⎪⎨⎧>=<=0)(ˆ20 )(ˆ00)(ˆn n x n n x n n xe e辅助因子g (n ),上式可写作 其中最小相位信号法求复倒谱原理框图如下这种方法仅限于是最小相位信号的情况。

根据z 变换的微分特性得对上式求逆z 变换,根据z 变换的微分特性,有所以设x (n )是最小相位序列,而最小相位信号序列一定为因果序列 ,所以有由于 及 可得递推公式 递归运算后由复倒谱定义可知 如果x (n )是最大相位序列,则变为00()1020n g n n n <⎧⎪==⎨⎪>⎩)n )()()(z X dzdz z X dz d z zX -=- [])()()(ˆn x n n x n x n ⋅=*⋅0)()(ˆ)(≠-⎪⎭⎫ ⎝⎛=∑∞-∞=n k n x k xn k n x k ∑∑-==+-⎪⎭⎫ ⎝⎛=-=100)0()(ˆ)()(ˆ)()(ˆ)()(n k nk x n x k n x k x n k k n x k x n k n x )0(0)(ˆ<=k k x )(0)(ˆn k k n x>=-)0()()(ˆ)0()()(ˆ10x k n x k xn k x n x n x n k -⎪⎭⎫ ⎝⎛-=∑-=[]{}⎭⎬⎫⎩⎨⎧==∑∞-∞=---])(ln[)(ln )(ˆ11n n z n x z n x z z n x[][])0(ln )()0(ln )0(ln )0(1x n x x z z x ===-δ⎪⎩⎪⎨⎧<=>=0 2010 0)(n n n n g 0)0()()(ˆ)()0()()(ˆ01<--=∑+=n x k n x k x n k x n x n x n k其中 2、基音检测;语音的倒谱是将语音的短时谱取对数后再进行IDFT 得到的,所以浊音信号的周期性激励反映在倒谱上是同样周期的冲激。

借此,可从倒谱波形中估计出基音周期。

一般把倒谱波形中第二个冲激,认为是对应激励源的基频。

下面给出一种倒谱法求基音周期的框图及流程图如下3.共振峰检测倒谱将基音谐波和声道的频谱包络分离开来。

对倒谱进行低时窗选,通过语音倒谱)0(ln )0(ˆx x =图5.8 一种倒谱法求基音周期的实现框图分析系统的最后一级,进行DFT后的输出即为平滑后的对数模函数,这个平滑的对数谱显示了特定输入语音段的谐振结构,即谱的峰值基本上对应于共振蜂频率,对平滑过的对数谱中的峰值进行定位,即可估计共振峰。

原理框图及流程图如下。

图5.12 共振峰检测框图四、实验步骤(包括主要步骤、代码分析等)1.倒谱MATLAB实现代码段clear all; %倒谱[s,fs,nbit]=wavread('beijing.wav'); %读入一段语音b=s'; %将s转置x=b(5000:5399); %取400点语音N=length(x); %读入语音的长度S=fft(x); %对x进行傅里叶变换Sa=log(abs(S)); %log为以e为底的对数sa=ifft(Sa); %对Sa进行傅里叶逆变换ylen=length(sa);for i=1:ylen/2;sal(i)=sa(ylen/2+1-i);endfor i=(ylen/2+1):ylen;sal(i)=sa(i+1-ylen/2);end%绘图figure(1);subplot(2,1,1);plot(x);%axis([0,400,-0.5,0.5])title('截取的语音段');xlabel('样点数');ylabel('幅度');subplot(2,1,2);time2=[-199:1:-1,0:1:200];plot(time2,sa1);%axis([-200,200,-0.5,0.5])title('截取语音的倒谱');xlabel('样点数');ylabel('幅度');运行结果如图:2. 倒谱法求浊音、清音的基音周期function s=p5_2pitchdetectwaveFile='beijing.wav';[y,fs,nbits]=wavread(waveFile);time1=1:length(y);time=(1:length(y))/fs;frameSize=floor(50*fs/1000); % 帧长startIndex=round(5000); % 起始序号endIndex=startIndex+frameSize-1; % 结束序号frame=y(startIndex:endIndex); % 取出该帧frameSize=length(frame);frame2=frame.*hamming(length(frame)); % 加汉明窗rwy=rceps(frame2); % 求倒谱ylen=length(rwy);cepstrum=rwy(1:ylen/2);for i=1:ylen/2;cepstrum1(i)=rwy(ylen/2+1-i);endfor i=(ylen/2+1):ylen;cepstrum1(i)=rwy(i+1-ylen/2);end%基因检测LF=floor(fs/500); %基因周期的范围是70~500Hz HF=floor(fs/70);cn=cepstrum(LF:HF);[mx_cep ind]=max(cn);if mx_cep>0.08&ind>LF;a=fs/(LF+ind);elsea=0;endpitch=a%画图figure(1);subplot(3,1,1);plot(time1,y);title('语音波形');%axis tightylim=get(gca,'ylim');line([time1(startIndex),time1(startIndex)],ylim,'color','r');line([time1(endIndex),time1(endIndex)],ylim,'color','r');xlabel('样点数');ylabel('幅度');subplot(3,1,2);plot(frame);%axis([0,400,-0.5,0.5])title('一帧语音');xlabel('样点数');ylabel('幅度')subplot(3,1,3);time2=[-199:1:-1,0:1:200];plot(time2,cepstrum1);%axis([-200,200,-0.5,0.5])title('一帧语音的倒谱');xlabel('样点数');ylabel('幅度');运行结果如下图:倒谱法求浊音的基音周期清音的倒谱3. 共振峰检测程序waveFile='qinghua.wav';[y,fs,nbits]=wavread(waveFile);time=(1:length(y))/fs;frameSize=floor(40*fs/1000); % 帧长startIndex=round(15000); % 起始序号endIndex=startIndex+frameSize-1; % 结束序号frame=y(startIndex:endIndex); % 取出该帧frameSize=length(frame);frame2=frame.*hamming(length(frame)); %加汉明窗rwy=rceps(frame2); %倒谱求ylen=length(rwy);cepstrum=rwy(1:ylen/2);% 基音检测LF=floor(fs/500);HF=floor(fs/70);cn=cepstrum(LF:HF);[mx_cepind]=max(cn);% 找到最大的突起的位置% 共振峰检测核心代码NN=ind+LF;ham=hamming(NN);cep=cepstrum(1:NN);ceps=cep.*ham; %汉明窗formant1=20*log(abs(fft(ceps)));formant(1:2)=formant1(1:2);for t=3:NN% do some median filteringz=formant1(t-2:t);md=median(z);formant2(t)=md;endfor t=1:NN-1if t<=2formant(t)=formant1(t);elseformant(t)=formant2(t-1)*0.25+formant2(t)*0.5+formant2(t+1)*0.25; endendsubplot(3,1,1);plot(cepstrum);title('倒谱');xlabel('样点数');ylabel('幅度')%axis([0,220,-0.5,0.5])spectral=20*log(abs(fft(frame2)));subplot(3,1,2);xj=(1:length(spectral)/2)*fs/length(spectral);plot(xj,spectral(1:length(spectral)/2));title('频谱');xlabel('频率/Hz');ylabel('幅度/dB') %axis([0,500,-100,50]) subplot(3,1,3); xi=(1:NN/2)*fs/NN; plot(xi,formant(1:NN/2)); title('平滑对数幅度谱'); xlabel('频率/Hz'); ylabel('幅度/dB'); %axis([0,5500,-80,0])运行结果如图所示:020406080100120140160180200220-0.50.5倒谱样点数幅度5001000150020002500300035004000450050005500-100-50050频谱频率/Hz 幅度/d B5001000150020002500300035004000450050005500-80-60-40-20平滑对数幅度谱频率/Hz幅度/d B五、结果分析与总结对语音信号进行同态分析可得到语音信号的倒谱参数。

相关文档
最新文档