文档

cceps

复倒谱分析

描述

例子

xhat= cceps (x返回复倒谱xhat的实际数据序列x用傅里叶变换。

请注意

cceps只对真实数据有效。

(xhatnd[c] =x返回样本的数量nd(循环的)延迟加到x在找到复倒谱之前。

(xhatndxhat1[c] =x返回第二个复倒谱,xhat1

(___[c] =xn零垫x长度n并返回长度n

例子

全部折叠

这个例子使用cceps显示回声产生频率为45hz的正弦,采样频率为100hz。在0.2秒后添加一个振幅为原来的一半的回声。计算信号的复倒谱。注意0.2秒的回声。

Fs = 100;t = 0:1/Fs:1.27;S1 = sin(2*pi*45*t);S2 = s1 + 0.5*[0 (1,20) s1(1:108)];C = cceps(s2);情节(t、c)包含(“时间(s)”)标题(复杂的倒频谱的

输入参数

全部折叠

输入信号,指定为实向量。通过应用线性相位项,使输入在±处无相位不连续π弧度。也就是说,如果有必要,它被一些样本(在零填充之后)循环移动,使相位为零π弧度。

补零信号的长度,指定为正实整数。

输出参数

全部折叠

复倒频谱,作为一个向量返回。

添加到的循环延迟采样数x,作为正实标量返回。

第二个复倒频谱,作为一个向量返回。xhat1是否使用参考中指定的替代因数分解算法进行计算[1][2]。这种方法只适用于有限持续时间的信号。关于计算复倒谱的傅里叶方法和因数分解方法的比较,请参阅下面的算法部分。

算法

倒谱分析是一种非线性信号处理技术,在语音处理和同态滤波中应用最为广泛[1]cceps算法7.1的实现在吗[3]。一个冗长的Fortran程序简化为这三行MATLAB代码®代码,其中组成的核心cceps

H = fft(x);logh =日志(abs (h) +√(1)* rcunwrap(角(h));Y = real(lift (logh));

请注意

rcunwrap在上述代码段中是一个特殊版本的打开从相位中减去一条直线。rcunwrap内部有一个局部函数吗cceps并且不可用于MATLAB命令行。

下表列出了傅里叶和分解算法的优缺点。

算法 优点 缺点
傅里叶 可用于任何信号。 需要阶段展开。输出有别名。
分解 不需要阶段展开。没有混叠 只能用于短持续时间的信号。输入信号必须有一个全零的z变换,在单位圆上没有零。

一般来说,您不能使用这两种算法的结果来相互验证。只有当输入数据的第一个元素为正,数据序列的z变换只有零,所有这些零都在单位圆内,输入数据序列很长(或用零填充)时,才能使用它们来相互验证。

参考文献

[1]奥本海姆,艾伦V,罗纳德W.谢弗和约翰R.巴克。离散时间信号处理。《上鞍河》,1999,页788-789。

[2]斯泰格利茨,K.和B.狄金森。用z变换的因式分解计算复倒谱1977年IEEE会议录®国际声学,语音和信号处理会议第723-726页。

[10] IEEE声学、语音与信号处理学会数字信号处理委员会,编。数字信号处理程序。纽约:IEEE出版社,1979。

R2006a之前引入