主要内容gydF4y2Ba

istftgydF4y2Ba

短时傅里叶反变换gydF4y2Ba

描述gydF4y2Ba

xgydF4y2Ba= istft (gydF4y2Ba年代gydF4y2Ba)gydF4y2Ba返回gydF4y2Ba短时傅里叶反变换gydF4y2Ba(ISTFT)gydF4y2Ba年代gydF4y2Ba.gydF4y2Ba

例子gydF4y2Ba

xgydF4y2Ba= istft (gydF4y2Ba年代gydF4y2Ba,gydF4y2BafsgydF4y2Ba)gydF4y2Ba返回的ISTFTgydF4y2Ba年代gydF4y2Ba使用采样率gydF4y2BafsgydF4y2Ba.gydF4y2Ba

xgydF4y2Ba= istft (gydF4y2Ba年代gydF4y2Ba,gydF4y2BatsgydF4y2Ba)gydF4y2Ba返回使用采样时间的ISTFTgydF4y2BatsgydF4y2Ba.gydF4y2Ba

例子gydF4y2Ba

xgydF4y2Ba= istft (gydF4y2Ba___gydF4y2Ba,gydF4y2Ba名称,值gydF4y2Ba)gydF4y2Ba使用名称-值对参数指定其他选项。选项包括FFT窗口长度和重叠样本的数量。这些参数可以添加到前面的任何输入语法中。gydF4y2Ba

例子gydF4y2Ba

[gydF4y2BaxgydF4y2Ba,gydF4y2BatgydF4y2Ba) = istft (gydF4y2Ba___gydF4y2Ba)gydF4y2Ba返回计算ISTFT时的信号时间。gydF4y2Ba

例子gydF4y2Ba

全部折叠gydF4y2Ba

生成三通道信号,由三种不同的啁啾采样在1khz为1秒。gydF4y2Ba

  1. 第一通道由瞬时频率为100hz的凹二次啁啾组成gydF4y2Bat =gydF4y2Ba越过300hzgydF4y2Bat =gydF4y2Ba1秒。它的初相是45度。gydF4y2Ba

  2. 第二通道由瞬时频率为200hz的凸二次啁啾组成gydF4y2Bat =gydF4y2Ba过600hzgydF4y2Bat =gydF4y2Ba1秒。gydF4y2Ba

  3. 第三通道由瞬时频率300hz的对数啁啾组成gydF4y2Bat =gydF4y2Ba0,越过500hzgydF4y2Bat =gydF4y2Ba1秒。gydF4y2Ba

使用长度为256的周期汉明窗和重叠长度为15个样本计算多通道信号的STFT。gydF4y2Ba

fs = 1 e3;t = 0:1 / fs: 1 - 1 / f;x =[唧唧声(t, 100, 1300,gydF4y2Ba“二次”gydF4y2Ba45岁的gydF4y2Ba“凹”gydF4y2Ba);唧唧声(t, 200, 1600,gydF4y2Ba“二次”gydF4y2Ba[],gydF4y2Ba“凸”gydF4y2Ba);唧唧声(t, 300, 1500,gydF4y2Ba“对数”gydF4y2Ba)];F (S, T) = stft (x, fs,gydF4y2Ba“窗口”gydF4y2Ba256年,汉明(gydF4y2Ba“周期”gydF4y2Ba),gydF4y2Ba“OverlapLength”gydF4y2Ba15);gydF4y2Ba

绘制第一通道和第二通道的原始和重建版本。gydF4y2Ba

(第九,ti) = istft(年代,fs,gydF4y2Ba“窗口”gydF4y2Ba256年,汉明(gydF4y2Ba“周期”gydF4y2Ba),gydF4y2Ba“OverlapLength”gydF4y2Ba15);情节(t) x(: 1)”,gydF4y2Ba“线宽”gydF4y2Ba, 1.5)gydF4y2Ba在gydF4y2Ba情节(ti,第九(:1)”,gydF4y2Ba“r——”gydF4y2Ba)举行gydF4y2Ba从gydF4y2Ba传奇(gydF4y2Ba“原始通道1”gydF4y2Ba,gydF4y2Ba“重建通道1”gydF4y2Ba)gydF4y2Ba

图中包含一个axes对象。坐标轴对象包含两个line类型的对象。这些对象表示原始通道1,重构通道1。gydF4y2Ba

情节(t) x(:, 2)”,gydF4y2Ba“线宽”gydF4y2Ba, 1.5)gydF4y2Ba在gydF4y2Ba情节(ti,第九(:,2)”,gydF4y2Ba“r——”gydF4y2Ba)传说(gydF4y2Ba《原始通道2》gydF4y2Ba,gydF4y2Ba《重建通道2》gydF4y2Ba)gydF4y2Ba

图中包含一个axes对象。坐标轴对象包含两个line类型的对象。这些对象表示原始通道2,重构通道2。gydF4y2Ba

相位声码器通过将音频转换到频域来执行时间拉伸和音高缩放。此图显示了相位声码器实现中涉及的操作。gydF4y2Ba

相位声码器取具有跳长分析窗口的信号的STFTgydF4y2Ba RgydF4y2Ba 1gydF4y2Ba 然后以跳大小为合成窗口执行ISTFTgydF4y2Ba RgydF4y2Ba 2gydF4y2Ba .声码器因此利用了WOLA方法。为了延长信号的时间,分析窗口使用比合成更多的重叠样本。因此,在输出端比在输入端有更多的样本(gydF4y2Ba NgydF4y2Ba 年代gydF4y2Ba ,gydF4y2Ba 出gydF4y2Ba >gydF4y2Ba NgydF4y2Ba 年代gydF4y2Ba ,gydF4y2Ba 在gydF4y2Ba ),尽管频率内容保持不变。现在,你可以通过以更高的采样率回放这个信号来调整音高,这会产生一个具有原始持续时间但音高更高的信号。gydF4y2Ba

加载包含亨德尔“哈利路亚合唱”片段的音频文件,采样频率为8192赫兹。gydF4y2Ba

负载gydF4y2Ba汉德尔gydF4y2Ba

设计一个长度为512的root-Hann窗口。设置分析重叠长度为192,综合重叠长度为166。gydF4y2Ba

wlen = 512;赢得=√损害wlen,gydF4y2Ba“周期”gydF4y2Ba));noverlapA = 192;noverlapS = 166;gydF4y2Ba

通过使用重叠192的分析窗口和重叠166的合成窗口实现相位声码器。gydF4y2Ba

S = stft (y, Fs,gydF4y2Ba“窗口”gydF4y2Ba,赢了,gydF4y2Ba“OverlapLength”gydF4y2Ba, noverlapA);Fs iy = istft(年代,gydF4y2Ba“窗口”gydF4y2Ba,赢了,gydF4y2Ba“OverlapLength”gydF4y2Ba, noverlapS);gydF4y2Ba%听,键入soundsc(w,Fs), pause(10), soundsc(iw,Fs);gydF4y2Ba

如果分析和合成窗口是相同的,但是重叠长度被改变了,将会有一个额外的增益/损失,您将需要调整。这是实现相位声码器的常用方法。gydF4y2Ba

计算跳比,并利用跳比调整重构信号的增益。也计算频率的音高偏移数据使用跳比。gydF4y2Ba

hopRatio = (wlen-noverlapS) / (wlen-noverlapA);iyg = iy * hopRatio;Fp = f * hopRatio;gydF4y2Ba%听,键入soundsc(iwg,Fs), pause(15), soundsc(iwg,Fp);gydF4y2Ba

画出原始信号和固定增益时拉伸信号。gydF4y2Ba

情节((0:长度(iyg) 1) / Fs, iyg,(0:长度(y) 1) / Fs, y)包含(gydF4y2Ba“时间(s)”gydF4y2Ba) xlim([0(长度(iyg)-1)/Fs]) legend(gydF4y2Ba“固定增益时拉伸信号”gydF4y2Ba,gydF4y2Ba原始信号的gydF4y2Ba,gydF4y2Ba“位置”gydF4y2Ba,gydF4y2Ba“最佳”gydF4y2Ba)gydF4y2Ba

图中包含一个axes对象。坐标轴对象包含两个line类型的对象。这些对象代表固定增益时拉伸信号,原始信号。gydF4y2Ba

在同一幅图上比较时延信号和节移信号。gydF4y2Ba

iy情节((0:长度()1)/ Fs, iy,(0:长度(iy) 1) / Fp, iy)包含(gydF4y2Ba“时间(s)”gydF4y2Ba) xlim([0(长度(iyg)-1)/Fs]) legend(gydF4y2Ba“时间拉伸信号”gydF4y2Ba,gydF4y2Ba“球场转移信号”gydF4y2Ba,gydF4y2Ba“位置”gydF4y2Ba,gydF4y2Ba“最佳”gydF4y2Ba)gydF4y2Ba

图中包含一个axes对象。坐标轴对象包含两个line类型的对象。这些物体代表时间拉伸信号,节距偏移信号。gydF4y2Ba

为了更好地理解基音偏移数据的影响,考虑下面的频率正弦gydF4y2BaFsgydF4y2Ba/ 2秒。gydF4y2Ba

t = 0:1 / Fs: 2;x =罪(2 *π* 10 * t);gydF4y2Ba

分别计算重叠长度为192和166的短时傅里叶变换和短时傅里叶反变换。gydF4y2Ba

Sx = stft (x, Fs,gydF4y2Ba“窗口”gydF4y2Ba,赢了,gydF4y2Ba“OverlapLength”gydF4y2Ba, noverlapA);第九= istft (Sx, Fs,gydF4y2Ba“窗口”gydF4y2Ba,赢了,gydF4y2Ba“OverlapLength”gydF4y2Ba, noverlapS);gydF4y2Ba

在一张图上绘制原始信号,在另一张图上绘制时间拉长和音调偏移的信号。gydF4y2Ba

次要情节(2,1,1)情节((0:长度(ix) 1) / Fs,第九,gydF4y2Ba“线宽”gydF4y2Ba(2)包含gydF4y2Ba“时间(s)”gydF4y2Ba) ylabel (gydF4y2Ba信号幅度的gydF4y2Ba) xlim([0(长度(ix)-1)/Fs])图例(gydF4y2Ba“时间拉伸信号”gydF4y2Ba次要情节(2,1,2)gydF4y2Ba在gydF4y2Ba情节((0:长度(x) 1) / Fs, x)图((0:长度(ix) 1) / Fp,第九,gydF4y2Ba“——”gydF4y2Ba,gydF4y2Ba“线宽”gydF4y2Ba2)传说(gydF4y2Ba原始信号的gydF4y2Ba,gydF4y2Ba“球场转移信号”gydF4y2Ba,gydF4y2Ba“位置”gydF4y2Ba,gydF4y2Ba“最佳”gydF4y2Ba)举行gydF4y2Ba从gydF4y2Ba包含(gydF4y2Ba“时间(s)”gydF4y2Ba) ylabel (gydF4y2Ba信号幅度的gydF4y2Ba) xlim([0(长度(ix) 1) / Fs])gydF4y2Ba

图中包含2个轴对象。axis对象1包含一个类型为line的对象。该对象表示时间拉伸信号。坐标轴对象2包含两个line类型的对象。这些对象代表原始信号,节距偏移信号。gydF4y2Ba

生成一个频率为1khz,持续时间为2秒的复正弦信号。gydF4y2Ba

fs = 1 e3;ts = 0:1 / fs: 2 - 1 / f;x = exp (2 j *π* 100 * cos(2 *π* 2 * ts));gydF4y2Ba

设计一个长度为100的周期汉恩窗,并设置重叠样本数为75。检查窗口和重叠长度是否符合COLA。gydF4y2Ba

nwin = 100;赢得=损害(nwin,gydF4y2Ba“周期”gydF4y2Ba);noverlap = 75;tf = iscola(赢,noverlap)gydF4y2Ba
tf =gydF4y2Ba逻辑gydF4y2Ba1gydF4y2Ba

零填充信号,以消除边缘效应。为了避免截断,在输入信号上加上零,使gydF4y2Ba

lgydF4y2Ba egydF4y2Ba ngydF4y2Ba ggydF4y2Ba tgydF4y2Ba hgydF4y2Ba (gydF4y2Ba xgydF4y2Ba ZgydF4y2Ba egydF4y2Ba rgydF4y2Ba ogydF4y2Ba )gydF4y2Ba -gydF4y2Ba ngydF4y2Ba ogydF4y2Ba vgydF4y2Ba egydF4y2Ba rgydF4y2Ba lgydF4y2Ba 一个gydF4y2Ba pgydF4y2Ba ngydF4y2Ba wgydF4y2Ba 我gydF4y2Ba ngydF4y2Ba -gydF4y2Ba ngydF4y2Ba ogydF4y2Ba vgydF4y2Ba egydF4y2Ba rgydF4y2Ba lgydF4y2Ba 一个gydF4y2Ba pgydF4y2Ba 信号长度减去重叠除以窗口长度减去重叠gydF4y2Ba

是一个整数。设置FFT长度为128。计算复信号的短时傅里叶变换。gydF4y2Ba

nPad = 100;xZero = [zero (1,nPad) x zero (1,nPad)];fftlen = 128;s = stft (xZero fs,gydF4y2Ba“窗口”gydF4y2Ba,赢了,gydF4y2Ba“OverlapLength”gydF4y2Banoverlap,gydF4y2Ba“FFTLength”gydF4y2Ba, fftlen);gydF4y2Ba

计算短时傅里叶反变换,去除零,实现完美重构。gydF4y2Ba

(是,ti) = istft(年代,fs,gydF4y2Ba“窗口”gydF4y2Ba,赢了,gydF4y2Ba“OverlapLength”gydF4y2Banoverlap,gydF4y2Ba“FFTLength”gydF4y2Ba, fftlen);(1: nPad) = [];(end-nPad + 1:结束)= [];ti = ti (1: end-2 * nPad);gydF4y2Ba

画出原始信号和重构信号的实部。对信号的虚部也进行了很好的重构。gydF4y2Ba

情节(ts,真正的(x))gydF4y2Ba在gydF4y2Ba情节(ti,真正的(是),gydF4y2Ba“——”gydF4y2Ba) xlim([0 0.5]) xlabel(gydF4y2Ba“时间(s)”gydF4y2Ba) ylabel (gydF4y2Ba“振幅(V)”gydF4y2Ba)传说(gydF4y2Ba原始信号的gydF4y2Ba,gydF4y2Ba重构信号的gydF4y2Ba)举行gydF4y2Ba从gydF4y2Ba

图中包含一个axes对象。坐标轴对象包含两个line类型的对象。这些对象分别代表原始信号、重构信号。gydF4y2Ba

产生一个在2khz采样1秒的正弦信号。gydF4y2Ba

fs = 2 e3;t = 0:1 / fs: 1 - 1 / f;x = 5 * sin(2 *π* 10 * t);gydF4y2Ba

设计一个长度为120的周期性汉明窗。检查有80个样本重叠的窗口的COLA约束。窗口重叠组合是COLA兼容的。gydF4y2Ba

赢得=汉明(120gydF4y2Ba“周期”gydF4y2Ba);noverlap = 80;tf = iscola(赢,noverlap)gydF4y2Ba
tf =gydF4y2Ba逻辑gydF4y2Ba1gydF4y2Ba

设置FFT长度为512。计算短时傅里叶变换。gydF4y2Ba

fftlen = 512;s = stft (x, fs,gydF4y2Ba“窗口”gydF4y2Ba,赢了,gydF4y2Ba“OverlapLength”gydF4y2Banoverlap,gydF4y2Ba“FFTLength”gydF4y2Ba, fftlen);gydF4y2Ba

计算短时傅里叶反变换。gydF4y2Ba

[X, T] = istft(年代,fs,gydF4y2Ba“窗口”gydF4y2Ba,赢了,gydF4y2Ba“OverlapLength”gydF4y2Banoverlap,gydF4y2Ba“FFTLength”gydF4y2Bafftlen,gydF4y2Ba“方法”gydF4y2Ba,gydF4y2Ba“ola”gydF4y2Ba,gydF4y2Ba“ConjugateSymmetric”gydF4y2Ba,真正的);gydF4y2Ba

绘制原始信号和重建信号。gydF4y2Ba

情节(t x,gydF4y2Ba“b”gydF4y2Ba)举行gydF4y2Ba在gydF4y2Ba情节(T X,gydF4y2Ba“r”gydF4y2Ba)包含(gydF4y2Ba“时间(s)”gydF4y2Ba) ylabel (gydF4y2Ba“振幅(V)”gydF4y2Ba)标题(gydF4y2Ba“原始和重构信号”gydF4y2Ba)传说(gydF4y2Ba原始信号的gydF4y2Ba,gydF4y2Ba重构信号的gydF4y2Ba)举行gydF4y2Ba从gydF4y2Ba

图中包含一个axes对象。标题为Original和reconstruction Signal的axis对象包含两个类型为line的对象。这些对象分别代表原始信号、重构信号。gydF4y2Ba

输入参数gydF4y2Ba

全部折叠gydF4y2Ba

短时傅里叶变换,指定为矩阵或三维阵列。对于单通道信号,指定gydF4y2Ba年代gydF4y2Ba作为一个矩阵,列上的时间增加,行上的频率增加。对于多通道信号,指定gydF4y2Ba年代gydF4y2Ba作为三维阵列,其第三维度与通道相对应。的输出得到频率和时间向量gydF4y2BastftgydF4y2Ba.gydF4y2Ba

请注意gydF4y2Ba

如果你想要gydF4y2BaxgydF4y2Ba而且gydF4y2Ba年代gydF4y2Ba的值为相同的长度gydF4y2Ba(长度(gydF4y2BaxgydF4y2Ba) -noverlap) /(长度(窗口)-noverlap)gydF4y2Ba必须是整数。使用gydF4y2Ba窗口gydF4y2Ba指定…的长度gydF4y2Ba窗口gydF4y2Ba而且gydF4y2BaOverlapLengthgydF4y2Ba指定gydF4y2BanoverlapgydF4y2Ba.gydF4y2Ba

数据类型:gydF4y2Ba双gydF4y2Ba|gydF4y2Ba单gydF4y2Ba
复数的支持:gydF4y2Ba是的gydF4y2Ba

以赫兹为单位的采样速率,指定为正标量。gydF4y2Ba

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

采样时间,指定为gydF4y2Ba持续时间gydF4y2Ba标量。gydF4y2Ba

例子:gydF4y2Ba秒(1)gydF4y2Ba是一个gydF4y2Ba持续时间gydF4y2Ba表示连续信号样本之间1秒时间差的标量。gydF4y2Ba

数据类型:gydF4y2Ba持续时间gydF4y2Ba

名称-值参数gydF4y2Ba

指定可选参数对为gydF4y2BaName1 = Value1,…,以=家gydF4y2Ba,在那里gydF4y2Ba的名字gydF4y2Ba参数名称和gydF4y2Ba价值gydF4y2Ba对应的值。名-值参数必须出现在其他参数之后,但对的顺序并不重要。gydF4y2Ba

例子:gydF4y2Baistft(年代,窗口=赢,OverlapLength = 50, FFTLength = 128)gydF4y2Ba使用窗口将数据装入窗口gydF4y2Ba赢得gydF4y2Ba,相邻段之间有50个样本重叠,DFT点128个。gydF4y2Ba

在R2021a之前,名称和值之间用逗号隔开,并括起来gydF4y2Ba的名字gydF4y2Ba在报价。gydF4y2Ba

例子:gydF4y2Baistft(年代,“窗口”,赢得“OverlapLength”,50岁,FFTLength, 128)gydF4y2Ba使用窗口将数据装入窗口gydF4y2Ba赢得gydF4y2Ba,相邻段之间有50个样本重叠,DFT点128个。gydF4y2Ba

窗口函数,指定为一个向量。如果不指定窗口或将其指定为空,则函数使用一个长度为128的周期Hann窗口。的长度gydF4y2Ba窗口gydF4y2Ba必须大于或等于2。gydF4y2Ba

有关可用窗口的列表,请参见gydF4y2Ba窗户gydF4y2Ba.gydF4y2Ba

例子:gydF4y2Ba损害(N + 1)gydF4y2Ba而且gydF4y2Ba(1-cos(2 *π* (0:N) / N)) / 2gydF4y2Ba都指定了长度的Hann窗口gydF4y2BaNgydF4y2Ba+ 1。gydF4y2Ba

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

重叠样本的数目,指定为小于的长度的正整数gydF4y2Ba窗口gydF4y2Ba.如果您省略gydF4y2BaOverlapLengthgydF4y2Ba或将其指定为空,则将其设置为小于窗口长度75%的最大整数,对于默认的Hann窗口,结果是96个样本。gydF4y2Ba

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

DFT点数,指定为正整数。为了实现完美的时域重构,您应该将DFT点的数量设置为与在gydF4y2BastftgydF4y2Ba.gydF4y2Ba

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

重叠添加的方法,指定为以下之一:gydF4y2Ba

  • “呼啦”gydF4y2Ba加权交叠相加gydF4y2Ba

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

原始信号的共轭对称性,具体为gydF4y2Ba真正的gydF4y2Ba或gydF4y2Ba假gydF4y2Ba.如果此选项设置为gydF4y2Ba真正的gydF4y2Ba,gydF4y2BaistftgydF4y2Ba假设输入gydF4y2Ba年代gydF4y2Ba是对称的,否则不作对称假设。当gydF4y2Ba年代gydF4y2Ba不是完全共轭对称由于舍入误差,设置名值对为gydF4y2Ba真正的gydF4y2Ba确保STFT被视为共轭对称的。如果gydF4y2Ba年代gydF4y2Ba共轭对称,则反变换计算速度较快,且输出为实数。gydF4y2Ba

STFT频率范围,指定为gydF4y2Ba“中心”gydF4y2Ba,gydF4y2Ba“双侧”gydF4y2Ba,或gydF4y2Ba“单向的”gydF4y2Ba.gydF4y2Ba

  • “中心”gydF4y2Ba-治疗gydF4y2Ba年代gydF4y2Ba作为一个双面,中心STFT。如果gydF4y2BanfftgydF4y2Ba是偶数,那么gydF4y2Ba年代gydF4y2Ba被认为是在区间内计算的gydF4y2Ba(-gydF4y2BaπgydF4y2Ba,gydF4y2BaπgydF4y2Ba]gydF4y2Barad /样品。如果gydF4y2BanfftgydF4y2Ba是奇数,那么gydF4y2Ba年代gydF4y2Ba被认为是在区间内计算的gydF4y2Ba(-gydF4y2BaπgydF4y2Ba,gydF4y2BaπgydF4y2Ba)gydF4y2Barad /样品。如果指定时间信息,则间隔为gydF4y2Ba(-gydF4y2BafgydF4y2Ba年代gydF4y2Ba,gydF4y2BafgydF4y2Ba年代gydF4y2Ba/ 2)gydF4y2Ba/单位时间和周期gydF4y2Ba(-gydF4y2BafgydF4y2Ba年代gydF4y2Ba,gydF4y2BafgydF4y2Ba年代gydF4y2Ba/ 2)gydF4y2Ba周期/单位时间,分别为gydF4y2BafgydF4y2Ba年代gydF4y2Ba是采样率。gydF4y2Ba

  • “双侧”gydF4y2Ba-治疗gydF4y2Ba年代gydF4y2Ba作为在区间上计算的双面STFTgydF4y2Ba[0, 2gydF4y2BaπgydF4y2Ba)gydF4y2Barad /样品。如果指定时间信息,则间隔为gydF4y2Ba[0,gydF4y2BafgydF4y2Ba年代gydF4y2Ba)gydF4y2Ba周期/单位时间。gydF4y2Ba

  • “单向的”gydF4y2Ba-治疗gydF4y2Ba年代gydF4y2Ba即片面的STFT。如果gydF4y2BanfftgydF4y2Ba是偶数,那么gydF4y2Ba年代gydF4y2Ba被认为是在区间内计算的gydF4y2Ba[0,gydF4y2BaπgydF4y2Ba]gydF4y2Barad /样品。如果gydF4y2BanfftgydF4y2Ba是奇数,那么gydF4y2Ba年代gydF4y2Ba被认为是在区间内计算的gydF4y2Ba[0,gydF4y2BaπgydF4y2Ba)gydF4y2Barad /样品。如果指定时间信息,则间隔为gydF4y2Ba[0,gydF4y2BafgydF4y2Ba年代gydF4y2Ba/ 2)gydF4y2Ba/单位时间和周期gydF4y2Ba[0,gydF4y2BafgydF4y2Ba年代gydF4y2Ba/ 2)gydF4y2Ba周期/单位时间,分别为gydF4y2BafgydF4y2Ba年代gydF4y2Ba是采样率。gydF4y2Ba

    请注意gydF4y2Ba

    当这个参数被设置为gydF4y2Ba“单向的”gydF4y2Ba,gydF4y2BaistftgydF4y2Ba假设在不保留总功率的情况下计算正奈奎斯特范围内的值。gydF4y2Ba

示例请参见gydF4y2BaSTFT频率范围gydF4y2Ba.gydF4y2Ba

数据类型:gydF4y2Ba字符gydF4y2Ba|gydF4y2Ba字符串gydF4y2Ba

输入时间维度,指定为gydF4y2Ba“acrosscolumns”gydF4y2Ba或gydF4y2Ba“downrows”gydF4y2Ba.如果该值设置为gydF4y2Ba“downrows”gydF4y2Ba,gydF4y2BaistftgydF4y2Ba的时间维度gydF4y2Ba年代gydF4y2Ba是沿着行向下的频率是穿过列的。如果该值设置为gydF4y2Ba“acrosscolumns”gydF4y2Ba,函数gydF4y2BaistftgydF4y2Ba的时间维度gydF4y2Ba年代gydF4y2Ba是横过列的频率维度是横过行的。gydF4y2Ba

输出参数gydF4y2Ba

全部折叠gydF4y2Ba

时域重构信号,作为向量或矩阵返回。gydF4y2Ba

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

时间瞬间,作为矢量返回。gydF4y2Ba

  • 如果一个抽样率gydF4y2BafsgydF4y2Ba提供,然后gydF4y2BatgydF4y2Ba包含以秒为单位的时间值。gydF4y2Ba

  • 如果一个时间gydF4y2BatsgydF4y2Ba提供,然后gydF4y2BatgydF4y2Ba具有与输入持续时间相同的时间格式,并且是一个持续时间数组。gydF4y2Ba

  • 如果没有提供时间信息,则gydF4y2BatgydF4y2Ba包含样品数量。gydF4y2Ba

数据类型:gydF4y2Ba双gydF4y2Ba|gydF4y2Ba单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

R.克罗奇埃尔短时傅里叶分析/合成的加权重叠加法。gydF4y2BaIEEE声学,语音和信号处理汇刊。gydF4y2Ba第28卷第1期,1980年2月,第99-102页。gydF4y2Ba

[2]哥岑,A. D., N.贝尔纳迪尼,D.阿菲。相位声码器的传统实现:交易技巧。gydF4y2Ba数字音频效果COST G-6会议记录(DAFX-00)gydF4y2Ba2000年12月7日至9日,意大利维罗纳。gydF4y2Ba

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

m.r.波特诺夫基于短时傅里叶分析的数字信号和系统时频表示。gydF4y2BaIEEE声学,语音和信号处理汇刊。gydF4y2Ba1980年2月,第28卷第1期,第55-69页。gydF4y2Ba

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

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

扩展功能gydF4y2Ba

版本历史gydF4y2Ba

介绍了R2019agydF4y2Ba

另请参阅gydF4y2Ba

功能gydF4y2Ba

主题gydF4y2Ba

Baidu
map