主要内容gydF4y2Ba

iscolagydF4y2Ba

确定窗口重叠组合是否符合COLAgydF4y2Ba

描述gydF4y2Ba

例子gydF4y2Ba

特遣部队gydF4y2Ba= iscola (gydF4y2Ba窗口gydF4y2Ba,gydF4y2BanoverlapgydF4y2Ba)gydF4y2Ba检查指定的窗口和重叠是否满足gydF4y2Ba常量重叠添加(COLA)约束gydF4y2Ba以确保gydF4y2Ba短时傅里叶反变换gydF4y2Ba结果对未修改的光谱进行了完美的重构。gydF4y2Ba

特遣部队gydF4y2Ba= iscola (gydF4y2Ba窗口gydF4y2Ba,gydF4y2BanoverlapgydF4y2Ba,gydF4y2Ba方法gydF4y2Ba)gydF4y2Ba指定要使用的反转方法。gydF4y2Ba

[gydF4y2Ba特遣部队gydF4y2Ba,gydF4y2Ba米gydF4y2Ba) = iscola(gydF4y2Ba___gydF4y2Ba)gydF4y2Ba也返回COLA和的中位数。您可以将这些输出参数与前面的任何输入语法一起使用。gydF4y2Ba

例子gydF4y2Ba

[gydF4y2Ba特遣部队gydF4y2Ba,gydF4y2Ba米gydF4y2Ba,gydF4y2BamaxDeviationgydF4y2Ba) = iscola(gydF4y2Ba___gydF4y2Ba)gydF4y2Ba返回与中值的最大偏差gydF4y2Ba米gydF4y2Ba.gydF4y2Ba

例子gydF4y2Ba

全部折叠gydF4y2Ba

创建一个长度为120的定期root-Hann窗口。测试窗口是否符合50%重叠的COLA。gydF4y2Ba

Win =√(hann(120))gydF4y2Ba“周期”gydF4y2Ba));诺弗拉普= 60;gydF4y2Ba

检查窗口是否符合50%重叠的COLA。gydF4y2Ba

Tf = iscola(赢,重迭)gydF4y2Ba
tf =gydF4y2Ba逻辑gydF4y2Ba1gydF4y2Ba

创建一个长度为256的周期性汉明窗口。设置重叠添加的方法为gydF4y2Ba“ola”gydF4y2Ba.gydF4y2Ba

窗口=汉明(256,gydF4y2Ba“周期”gydF4y2Ba);方法=gydF4y2Ba“ola”gydF4y2Ba;Noverlap = 128;gydF4y2Ba

测试窗口是否符合50%重叠的COLA。还要计算COLA和的中值以及与该和的最大偏差。gydF4y2Ba

[tf,m,maxDeviation] = iscola(窗口,重叠,方法)gydF4y2Ba
tf =gydF4y2Ba逻辑gydF4y2Ba1gydF4y2Ba
M = 1.0800gydF4y2Ba
maxDeviation = 2.2204e-16gydF4y2Ba

输入参数gydF4y2Ba

全部折叠gydF4y2Ba

分析窗口,指定为向量。gydF4y2Ba

例子:gydF4y2Ba温=巴特利特(120)gydF4y2Ba是长度为120的巴特利特窗口。gydF4y2Ba

数据类型:gydF4y2Ba双gydF4y2Ba|gydF4y2Ba单gydF4y2Ba

重叠样本的数目,指定为小于的长度的正整数gydF4y2Ba窗口gydF4y2Ba.gydF4y2Ba

数据类型:gydF4y2Ba双gydF4y2Ba|gydF4y2Ba单gydF4y2Ba

重叠添加方法,指定为:gydF4y2Ba

  • “呼啦”gydF4y2Ba-加权重叠添加。gydF4y2Ba

  • “ola”gydF4y2Ba——交叠相加。gydF4y2Ba

输出参数gydF4y2Ba

全部折叠gydF4y2Ba

COLA符合性,作为逻辑标量返回。如果函数返回agydF4y2Ba1gydF4y2Ba(true),则窗口和重叠长度满足COLA约束。gydF4y2Ba

COLA和的中值,作为实标量返回。如果输入是COLA兼容的,那么gydF4y2Ba米gydF4y2Ba等于COLA和常数。gydF4y2Ba

与中位数的最大偏差gydF4y2Ba米gydF4y2Ba.如果gydF4y2Ba窗口gydF4y2Ba而且gydF4y2BanoverlapgydF4y2Ba是否符合COLA标准gydF4y2BamaxDeviationgydF4y2Ba接近于COLA求和的期望数值精度误差。gydF4y2Ba

请注意gydF4y2Ba

你可以得出结论,严格遵守cola,如果gydF4y2BaM = 1gydF4y2Ba而且gydF4y2BamaxDeviationgydF4y2Ba接近于数值精度误差。gydF4y2Ba

更多关于gydF4y2Ba

全部折叠gydF4y2Ba

短时傅里叶反变换gydF4y2Ba

短时傅里叶反变换的计算方法是取STFT的每个DFT向量的IFFT,并将倒转信号重叠相加。ISTFT的计算方法如下:gydF4y2Ba

xgydF4y2Ba (gydF4y2Ba ngydF4y2Ba )gydF4y2Ba =gydF4y2Ba ∫gydF4y2Ba −gydF4y2Ba 1gydF4y2Ba /gydF4y2Ba 2gydF4y2Ba 1gydF4y2Ba /gydF4y2Ba 2gydF4y2Ba ∑gydF4y2Ba 米gydF4y2Ba =gydF4y2Ba −gydF4y2Ba ∞gydF4y2Ba ∞gydF4y2Ba XgydF4y2Ba 米gydF4y2Ba (gydF4y2Ba fgydF4y2Ba )gydF4y2Ba egydF4y2Ba jgydF4y2Ba 2gydF4y2Ba πgydF4y2Ba fgydF4y2Ba ngydF4y2Ba dgydF4y2Ba fgydF4y2Ba =gydF4y2Ba ∑gydF4y2Ba 米gydF4y2Ba =gydF4y2Ba −gydF4y2Ba ∞gydF4y2Ba ∞gydF4y2Ba ∫gydF4y2Ba −gydF4y2Ba 1gydF4y2Ba /gydF4y2Ba 2gydF4y2Ba 1gydF4y2Ba /gydF4y2Ba 2gydF4y2Ba XgydF4y2Ba 米gydF4y2Ba (gydF4y2Ba fgydF4y2Ba )gydF4y2Ba egydF4y2Ba jgydF4y2Ba 2gydF4y2Ba πgydF4y2Ba fgydF4y2Ba ngydF4y2Ba dgydF4y2Ba fgydF4y2Ba =gydF4y2Ba ∑gydF4y2Ba 米gydF4y2Ba =gydF4y2Ba −gydF4y2Ba ∞gydF4y2Ba ∞gydF4y2Ba xgydF4y2Ba 米gydF4y2Ba (gydF4y2Ba ngydF4y2Ba )gydF4y2Ba

在哪里gydF4y2Ba RgydF4y2Ba 为连续dft之间的跳大小,gydF4y2Ba XgydF4y2Ba 米gydF4y2Ba 加窗数据的DFT是否以时间为中心gydF4y2Ba 米gydF4y2Ba RgydF4y2Ba 而且gydF4y2Ba xgydF4y2Ba 米gydF4y2Ba (gydF4y2Ba ngydF4y2Ba )gydF4y2Ba =gydF4y2Ba xgydF4y2Ba (gydF4y2Ba ngydF4y2Ba )gydF4y2Ba ggydF4y2Ba (gydF4y2Ba ngydF4y2Ba −gydF4y2Ba 米gydF4y2Ba RgydF4y2Ba )gydF4y2Ba .逆STFT是对原始信号的完美重构,只要gydF4y2Ba ∑gydF4y2Ba 米gydF4y2Ba =gydF4y2Ba −gydF4y2Ba ∞gydF4y2Ba ∞gydF4y2Ba ggydF4y2Ba 一个gydF4y2Ba +gydF4y2Ba 1gydF4y2Ba (gydF4y2Ba ngydF4y2Ba −gydF4y2Ba 米gydF4y2Ba RgydF4y2Ba )gydF4y2Ba =gydF4y2Ba cgydF4y2Ba ∀gydF4y2Ba ngydF4y2Ba ∈gydF4y2Ba ℤgydF4y2Ba 在哪里gydF4y2Ba分析窗口gydF4y2Ba ggydF4y2Ba (gydF4y2Ba ngydF4y2Ba )gydF4y2Ba 是用来屏蔽原始信号的gydF4y2Ba cgydF4y2Ba 是一个常数。下图描述了在重构原始信号时所遵循的步骤。gydF4y2Ba

常量重叠添加(COLA)约束gydF4y2Ba

为了保证成功重建非修正光谱,分析窗口必须满足COLA约束。一般来说,如果分析窗口满足条件gydF4y2Ba ∑gydF4y2Ba 米gydF4y2Ba =gydF4y2Ba −gydF4y2Ba ∞gydF4y2Ba ∞gydF4y2Ba ggydF4y2Ba 一个gydF4y2Ba +gydF4y2Ba 1gydF4y2Ba (gydF4y2Ba ngydF4y2Ba −gydF4y2Ba 米gydF4y2Ba RgydF4y2Ba )gydF4y2Ba =gydF4y2Ba cgydF4y2Ba ∀gydF4y2Ba ngydF4y2Ba ∈gydF4y2Ba ℤgydF4y2Ba ,该窗口被认为是符合cola的。此外,COLA遵从性可以描述为弱或强。gydF4y2Ba

  • 弱的COLA符合性意味着分析窗口的傅里叶变换在帧率谐波处为零gydF4y2Ba

    GgydF4y2Ba (gydF4y2Ba fgydF4y2Ba kgydF4y2Ba )gydF4y2Ba =gydF4y2Ba 0gydF4y2Ba ,gydF4y2Ba kgydF4y2Ba =gydF4y2Ba 1gydF4y2Ba ,gydF4y2Ba 2gydF4y2Ba ,gydF4y2Ba ...gydF4y2Ba ,gydF4y2Ba RgydF4y2Ba −gydF4y2Ba 1gydF4y2Ba ,gydF4y2Ba fgydF4y2Ba kgydF4y2Ba ≜gydF4y2Ba kgydF4y2Ba RgydF4y2Ba .gydF4y2Ba

    别名消去会受到谱修改的干扰。弱COLA依赖于频域的别名消除。因此,只要信号没有经历任何光谱修改,就可以使用弱cola兼容窗口进行完美重构。gydF4y2Ba

  • 为了满足较强的COLA符合性,窗口的傅里叶变换必须具有一致的带宽限制,并且帧速率下采样,这样gydF4y2Ba

    GgydF4y2Ba (gydF4y2Ba fgydF4y2Ba )gydF4y2Ba =gydF4y2Ba 0gydF4y2Ba ,gydF4y2Ba fgydF4y2Ba ≥gydF4y2Ba 1gydF4y2Ba 2gydF4y2Ba RgydF4y2Ba .gydF4y2Ba

    这个方程表明强COLA约束不允许混叠。此外,对于较强的COLA符合性,该常数的值gydF4y2Ba cgydF4y2Ba 一定等于1。一般来说,如果短时间频谱以任何方式被修改,一个更强的COLA兼容窗口是首选。gydF4y2Ba

您可以使用gydF4y2BaiscolagydF4y2Ba功能检查薄弱的COLA符合性。用于检查COLA符合性的总和的数量由窗口长度和跳大小决定。一般来说,它是常用的gydF4y2Ba 一个gydF4y2Ba =gydF4y2Ba 1gydF4y2Ba 在gydF4y2Ba ∑gydF4y2Ba 米gydF4y2Ba =gydF4y2Ba −gydF4y2Ba ∞gydF4y2Ba ∞gydF4y2Ba ggydF4y2Ba 一个gydF4y2Ba +gydF4y2Ba 1gydF4y2Ba (gydF4y2Ba ngydF4y2Ba −gydF4y2Ba 米gydF4y2Ba RgydF4y2Ba )gydF4y2Ba =gydF4y2Ba cgydF4y2Ba ∀gydF4y2Ba ngydF4y2Ba ∈gydF4y2Ba ℤgydF4y2Ba 为加权重叠相加(WOLA),和gydF4y2Ba 一个gydF4y2Ba =gydF4y2Ba 0gydF4y2Ba 用于重叠添加(OLA)。默认情况下,gydF4y2BaistftgydF4y2Ba使用WOLA方法,通过应用gydF4y2Ba合成窗口gydF4y2Ba在执行重叠添加方法之前。gydF4y2Ba

一般来说,合成窗口与分析窗口相同。通过取强OLA窗口的平方根,可以构建有用的WOLA窗口。您可以对所有非负的OLA窗口使用此方法。例如,root-Hann窗口就是WOLA窗口的一个很好的例子。gydF4y2Ba

完美的重建gydF4y2Ba

一般来说,计算输入信号的STFT并对其进行反演不会得到完美的重构。如果希望ISTFT的输出与原始输入信号尽可能匹配,则信号和窗口必须满足以下条件:gydF4y2Ba

  • 输入大小-如果你对的输出求倒数gydF4y2BastftgydF4y2Ba使用gydF4y2BaistftgydF4y2Ba并希望结果与输入信号的长度相同gydF4y2BaxgydF4y2Ba的价值。gydF4y2Ba

    kgydF4y2Ba =gydF4y2Ba NgydF4y2Ba xgydF4y2Ba −gydF4y2Ba lgydF4y2Ba 米gydF4y2Ba −gydF4y2Ba lgydF4y2Ba

    必须是整数。在等式中,gydF4y2BaNgydF4y2BaxgydF4y2Ba是信号的长度,gydF4y2Ba米gydF4y2Ba是窗户的长度,和gydF4y2BalgydF4y2Ba为重叠长度。gydF4y2Ba

  • COLA符合性——使用COLA符合性窗口,假设您没有修改信号的短时傅里叶变换。gydF4y2Ba

  • 填充-如果输入信号的长度是这样的值gydF4y2BakgydF4y2Ba不是整数,在计算短时傅里叶变换之前对信号进行零填充。在对信号逆变后去掉多余的零。gydF4y2Ba

参考文献gydF4y2Ba

[1]艾伦。用离散傅里叶变换进行短期光谱分析、合成和修正。gydF4y2BaIEEE声学,语音和信号处理汇刊。gydF4y2Ba1977年6月,第25卷第3期,235-238页。gydF4y2Ba

[2]格里芬,丹尼尔W.和杰S.林。修正短时傅里叶变换下的信号估计。gydF4y2BaIEEE声学,语音和信号处理汇刊。gydF4y2Ba1984年4月,第32卷第2期,第236-243页。gydF4y2Ba

夏普,布鲁斯。gydF4y2Ba重叠相加处理的可逆性gydF4y2Ba.gydF4y2Bahttps://gauss256.github.io/blog/cola.htmlgydF4y2Ba,于2019年7月访问。gydF4y2Ba

史密斯,朱利叶斯·奥利翁。gydF4y2Ba频谱音频信号处理gydF4y2Ba.gydF4y2Bahttps://ccrma.stanford.edu/~jos/sasp/gydF4y2Ba, 2011年版,2018年11月上线。gydF4y2Ba

扩展功能gydF4y2Ba

C/ c++代码生成gydF4y2Ba
使用MATLAB®Coder™生成C和c++代码。gydF4y2Ba

版本历史gydF4y2Ba

在R2019a中引入gydF4y2Ba

另请参阅gydF4y2Ba

功能gydF4y2Ba

Baidu
map