主要内容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 =gydF4y2Ba0和超过300hzgydF4y2Bat =gydF4y2Ba1秒。它的初始相位是45度。gydF4y2Ba

  2. 第二信道由瞬时频率为200hz的凸二次啁啾组成gydF4y2Bat =gydF4y2Ba0和600赫兹gydF4y2Bat =gydF4y2Ba1秒。gydF4y2Ba

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

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

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

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

[ix,ti] = istft(S,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“第一频道”gydF4y2Ba,gydF4y2Ba“重建的1号通道”gydF4y2Ba)gydF4y2Ba

图中包含一个轴对象。axis对象包含2个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

图中包含一个轴对象。axis对象包含2个line类型的对象。这些对象表示原始通道2,重建通道2。gydF4y2Ba

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

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

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

负载gydF4y2Ba汉德尔gydF4y2Ba

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

Wlen = 512;Win =√(hann(wlen,gydF4y2Ba“周期”gydF4y2Ba));noverlapA = 192;noverlapS = 166;gydF4y2Ba

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

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

如果分析和合成窗口相同,但重叠长度发生了变化,则需要调整额外的增益/损失。这是实现相位声码器的常用方法。gydF4y2Ba

计算跳比,并利用跳比调整重构信号的增益。还可以使用跳比计算基音移数据的频率。gydF4y2Ba

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

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

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

图中包含一个轴对象。axis对象包含2个line类型的对象。这些对象代表了固定增益的时间拉伸信号,原始信号。gydF4y2Ba

在同一图上比较时间拉伸信号和基音位移信号。gydF4y2Ba

iy情节((0:长度()1)/ Fs, iy,(0:长度(iy) 1) / Fp, iy)包含(gydF4y2Ba“时间(s)”gydF4y2Baxlim([0 (length(iyg)-1)/Fs])gydF4y2Ba“时间拉长信号”gydF4y2Ba,gydF4y2Ba“变音信号”gydF4y2Ba,gydF4y2Ba“位置”gydF4y2Ba,gydF4y2Ba“最佳”gydF4y2Ba)gydF4y2Ba

图中包含一个轴对象。axis对象包含2个line类型的对象。这些对象分别代表时间拉伸信号、音高位移信号。gydF4y2Ba

为了更好地理解pitch shift数据的影响,考虑以下频率的正弦信号gydF4y2BaFsgydF4y2Ba超过2秒。gydF4y2Ba

t = 0:1/Fs:2;X = sin(2* *10*t);gydF4y2Ba

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

Sx = stft(x,Fs,gydF4y2Ba“窗口”gydF4y2Ba,赢了,gydF4y2Ba“OverlapLength”gydF4y2Ba, noverlapA);ix = 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信号幅度的gydF4y2Baxlim([0 (length(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信号幅度的gydF4y2Baxlim([0 (length(ix)-1)/Fs])gydF4y2Ba

图中包含2个轴对象。Axes对象1包含一个line类型的对象。该对象表示时间拉伸信号。坐标轴对象2包含2个line类型的对象。这些对象代表原始信号,Pitch shift信号。gydF4y2Ba

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

Fs = 1e3;Ts = 0:1/fs:2-1/fs;X = exp(2j* *100*cos(2* * *2*ts));gydF4y2Ba

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

Nwin = 100;Win = hann(nwin,gydF4y2Ba“周期”gydF4y2Ba);Noverlap = 75;Tf = iscola(赢,重叠)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 = [0 (1,nPad) x 0 (1,nPad)];Fftlen = 128;s = stft(x0,fs,gydF4y2Ba“窗口”gydF4y2Ba,赢了,gydF4y2Ba“OverlapLength”gydF4y2Banoverlap,gydF4y2Ba“FFTLength”gydF4y2Ba, fftlen);gydF4y2Ba

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

[is,ti] = istft(s,fs,gydF4y2Ba“窗口”gydF4y2Ba,赢了,gydF4y2Ba“OverlapLength”gydF4y2Banoverlap,gydF4y2Ba“FFTLength”gydF4y2Ba, fftlen);is(1:nPad) = [];is(end- npad +1:end) = [];ti = ti(1:end-2*nPad);gydF4y2Ba

绘制原始信号和重建信号的实部。信号的虚部也被完美地重构了。gydF4y2Ba

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

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

生成一个在2千赫采样1秒的正弦信号。gydF4y2Ba

Fs = 2e3;T = 0:1/fs:1-1/fs;X = 5*sin(2*pi*10*t);gydF4y2Ba

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

赢=汉明(120,gydF4y2Ba“周期”gydF4y2Ba);nonoverlap = 80;Tf = iscola(赢,重叠)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(s,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

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

输入参数gydF4y2Ba

全部折叠gydF4y2Ba

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

请注意gydF4y2Ba

如果你求倒数gydF4y2Ba年代gydF4y2Ba使用gydF4y2BaistftgydF4y2Ba并希望结果与gydF4y2BaxgydF4y2Ba的值。gydF4y2Ba长度(长度(x) -noverlap) /((窗口)-noverlap)gydF4y2Ba必须为整数。gydF4y2Ba

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

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

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

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

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

数据类型:gydF4y2Ba持续时间gydF4y2Ba

名称-值参数gydF4y2Ba

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

在R2021a之前,使用逗号分隔每个名称和值,并将其括起来gydF4y2Ba名字gydF4y2Ba在报价。gydF4y2Ba

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

窗口函数,指定为逗号分隔的对,由gydF4y2Ba“窗口”gydF4y2Ba还有一个向量。如果不指定窗口或将其指定为空,则该函数使用长度为128的周期性Hann窗口。的长度gydF4y2Ba窗口gydF4y2Ba必须大于等于2。gydF4y2Ba

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

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

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

重叠样本的数目,指定为由逗号分隔的对组成gydF4y2Ba“OverlapLength”gydF4y2Ba一个正整数小于的长度gydF4y2Ba窗口gydF4y2Ba.如果你省略了gydF4y2Ba“OverlapLength”gydF4y2Ba或将其指定为空,则它将被设置为小于窗口长度75%的最大整数,对于默认Hann窗口,结果是96个样本。gydF4y2Ba

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

DFT点的数目,指定为逗号分隔的对,由gydF4y2Ba“FFTLength”gydF4y2Ba一个正整数。为了实现完美的时域重构,您应该将DFT点的数量设置为与中使用的DFT点的数量匹配gydF4y2BastftgydF4y2Ba.gydF4y2Ba

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

重叠添加方法,指定为由逗号分隔的对组成gydF4y2Ba“方法”gydF4y2Ba其中一个是:gydF4y2Ba

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

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

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

STFT频率范围,指定为由逗号分隔的对组成gydF4y2Ba“FrequencyRange”gydF4y2Ba而且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

有关示例,请参见gydF4y2Ba频率范围gydF4y2Ba.gydF4y2Ba

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

输入时间维度,指定为由逗号分隔的对组成gydF4y2Ba“InputTimeDimension”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 (gydF4y2Ba lgydF4y2Ba egydF4y2Ba ngydF4y2Ba ggydF4y2Ba tgydF4y2Ba hgydF4y2Ba (gydF4y2Ba xgydF4y2Ba )gydF4y2Ba -gydF4y2Ba ngydF4y2Ba ogydF4y2Ba vgydF4y2Ba egydF4y2Ba rgydF4y2Ba lgydF4y2Ba 一个gydF4y2Ba pgydF4y2Ba )gydF4y2Ba (gydF4y2Ba lgydF4y2Ba egydF4y2Ba ngydF4y2Ba ggydF4y2Ba tgydF4y2Ba hgydF4y2Ba (gydF4y2Ba wgydF4y2Ba 我gydF4y2Ba ngydF4y2Ba dgydF4y2Ba ogydF4y2Ba wgydF4y2Ba )gydF4y2Ba -gydF4y2Ba ngydF4y2Ba ogydF4y2Ba vgydF4y2Ba egydF4y2Ba rgydF4y2Ba lgydF4y2Ba 一个gydF4y2Ba pgydF4y2Ba )gydF4y2Ba 必须为整数。gydF4y2Ba

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

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

参考文献gydF4y2Ba

r.e.克罗奇埃[1]短时间傅里叶分析/综合的加权重叠加法gydF4y2BaIEEE声学、语音与信号处理汇刊。gydF4y2Ba第28卷第1期,1980年2月,第99-102页。gydF4y2Ba

[2] Gotzen, a.d., N. Bernardini和D. Arfib。相位-声码器的传统实现:交易技巧gydF4y2BaCOST G-6数字音频效果会议记录(DAFX-00)gydF4y2Ba2000年12月7日至9日,意大利维罗纳。gydF4y2Ba

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

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

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

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

扩展功能gydF4y2Ba

版本历史gydF4y2Ba

在R2019a中引入gydF4y2Ba

另请参阅gydF4y2Ba

功能gydF4y2Ba

主题gydF4y2Ba