Questions tagged «stft»

2
用文字描述逆短时傅立叶逆变换算法
我试图从概念上理解将正向和反向短时傅立叶变换(STFT)应用于离散时域信号时发生的情况。我找到了Allen和Rabiner(1977)的经典论文,以及Wikipedia的文章(链接)。我相信,还有另一个好文章被发现在这里。 我对计算Gabor变换感兴趣,这无非是带有高斯窗口的STFT。 这是我对前向 STFT的了解: 从信号中选择一个子序列,该子序列由时域元素组成。 使用时域中的逐点乘法,将子序列乘以窗口函数。 使用FFT将相乘的子序列带入频域。 通过选择连续的重叠子序列,并重复上述过程,我们得到了一个具有m行n列的矩阵。每一列是在给定时间计算的子序列。这可以用于计算频谱图。 但是,对于逆 STFT,论文讨论了重叠分析部分的求和。我发现可视化这里发生的事情非常具有挑战性。为了能够计算反 STFT(如上所述,按逐步顺序),我必须做什么? 前向STFT 我创建了一个图,显示了我认为前向STFT正在进行的工作。我不了解的是如何组装每个子序列,以便获得原始时间序列。有人可以修改此图形或给出一个方程式来显示如何添加子序列吗? 逆变换 这是我对逆变换的了解。使用IFFT将每个连续的窗口带回到时域。然后,将每个窗口移动步长,然后将其添加到上一个移动的结果中。下图显示了此过程。相加的输出是时域信号。 代码示例 下面的Matlab代码生成一个合成的时域信号,然后测试STFT过程,证明在数值舍入误差内,逆是正向变换的对偶。信号的开始和结尾都进行零填充,以确保窗口的中心可以位于时域信号的第一个和最后一个元素。 ñ+ N0− 1ñ+ñ0-1个N + N_0 - 1ñ0ñ0N_0 % The code computes the STFT (Gabor transform) with step size = 1 % This is most useful when modifications of the signal is required in …

3
STFT和DWT(小波)
STFT可以成功用于声音数据(例如带有.wav声音文件),以便进行某些频域修改(例如:噪声消除)。 在N=441000(即以采样率10秒fs=44100),,的情况下windowsize=4096,overlap=4STFT近似生成一个430x4096数组(第一坐标:时间帧,第二坐标:频率箱)。可以在此数组上进行修改,并可以使用重叠加法(*)进行重构。 小波怎么可能做类似的事情?(DWT),即得到a x b具有a时间帧和b频率段的相似形状数组,对此数组进行一些修改,最后恢复信号?怎么样 ?小波等于重叠叠加是什么?这里涉及的Python函数是什么(我还没有找到使用pyWavelets... 进行音频修改的简单示例)? (*):这是可以使用的STFT框架: signal = stft.Stft(x, 4096, 4) # x is the input modified_signal = np.zeros(signal.shape, dtype=np.complex) for i in xrange(signal.shape[0]): # Process each STFT frame modified_signal[i, :] = signal[i, :] * ..... # here do something in order to # modify the signal in …
12 fft  wavelet  dft  python  stft 

4
您可以在不增加窗口大小的情况下提高FFT的频率分辨率吗?
我想使用STFT进行多音高分析。我意识到检测信号中存在的部分仅仅是开始。我还是有问题。 假设我已经以“ CD”频率采样了信号44100Hz。在1024样本窗口中,我得到的频点分辨率为22500Hz/512=43Hz。这仅足以识别诸如C5 = 523.251Hz和的高钢琴音符 C#5 = 554.365。 我曾经认为这1024是一个很大的窗口。但是也许不是,通常使用较大的窗口来检测局部图像吗? 除了增加窗口大小之外,是否可以使用其他方法来提高频率分辨率,这会使时间分辨率恶化?我想到了两种方法: 方法1: 使用带通滤波器将信号划分为多个频带(例如0-11.25Hz和11.25-22.5Hz)。 对较高的频段进行下采样,以使原来的高频现在变为低频(第二个频段也是如此11.25-22.5Hz -> 0Hz-22.5Hz)-不确定是否可行。 Concat生成的带有已调整标签的垃圾箱集。 方法2: 使用限制不断增加的一系列低通滤波器。 在增加的频率范围上执行FFT。 对于每个频率,请使用最佳分辨率(来自包含该频率的第一个FFT的仓)。 这将使低频具有更好的分辨率,但是我认为这是可以的,因为对于更高的音符,频率差异会更大。 对于这个问题,我将不胜感激。 我也在这里阅读: 窗口大小,采样率如何影响FFT基音估计? 关于改善峰提取结果的方法。我认为会尝试使用它。
12 filters  fft  pitch  stft 


2
实时人体音高检测
我正在尝试实现一个唱歌游戏,该游戏将分析原始麦克风输入并告诉玩家他的演唱水平如何。这需要实时完成。 我遇到了很多线程在问同样的问题,但是我仍然没有完成它,这可能是由于我缺乏该领域的经验和浅薄的数学背景。我已经基于DSPDimension网站音高偏移的文章实现了一种算法:http ://www.dspdimension.com/admin/pitch-shifting-using-the-ft/ 正如文章所解释的,我提取了真实的频率和幅度,但是我不知道以此找到基本频率。我试图获得最大幅度的信号仓,但是对于较高音调的信号只能给出正确的结果,无论我使用哪种过采样因子,对于低频信号仍然会得到不好的数据。这种方法是完全错误的,还是我在正确的轨道上却只是缺少一些东西? 提前致谢, 编辑:我忘了提及我只对音高类感兴趣,因此可以确定基本面是否缺失,但样本中的色相强烈。 EDIT2:谢谢大家,我刚刚完成了一个算法的工作,它就像一个魅力。低音高估计问题是由于我的输入测试所致。当我演唱音符时,音符正确匹配。另外,我现在正在考虑所有谐波,而不仅仅是最高峰值。

3
Gabor-Morlet小波变换和常数Q变换有什么区别?
乍一看,恒定Q傅立叶变换和复数Gabor-Morlet小波变换看起来是相同的。两者都是基于恒定Q滤波器,开窗正弦波等的时频表示。但是也许我缺少一个区别? 用于音乐处理的Constant-Q转换工具箱说: CQT指的是时频表示,其中频点在几何上间隔开并且所有频点的Q因子(中心频率与带宽之比)相等。 时标分析说: 也就是说,使用Morlet小波计算信号的CWT与将信号通过一系列以且常数Q为的带通滤波器相同。F= 5 / 2 π一个F=5/2π一个f = \frac{5/2\pi}{a}5 / 2 π5/2π5/2\pi

3
色度二次采样:如何正确计算数据速率
我很难理解在利用Y'UV图像中的色度二次采样时如何计算数据速率: 我有以下示例进行计算: 图像分辨率:352*288 频率:25 fps 对于(4:4:4),示例计算如下: (352px * 288px) * 3 color channels * 25 fps * 8 bit = 60 825 600 bit/s 到目前为止,一切都很好。 但是现在来了(4:2:0): (352px*288px) * 1.5 color channels * 25 * 8 = 30 412 800 bit/s 现在,尝试将此示例转换为例如(4:1:1),我意识到我不确定自己是否正确理解如何计算1.5个颜色通道的比率。 我对计算的第一个猜测是在(4:2:0)的情况下: 2/4*3=1.5 color channels 同样,对于(4:1:1),我将计算颜色通道的比率为: 1/4*3=0.75 color channels 但是我根本不确定这是否是正确的方法。 …

1
Matlab的STFT实现spectrogram()的最大频率分辨率是多少?
Matlab的spectrogram()功能计算信号的STFT。它描述其NFFT参数如下: S = SPECTROGRAM(X,WINDOW,NOVERLAP,NFFT)指定用于计算离散傅立叶变换的频率点数。如果NFFT未指定,NFFT则使用默认值。 我是否正确,这NFFT仅是在频率分辨率和计算数量之间进行权衡?对于我的离线工作,无需节省周期。是否有的最大限制NFFT,例如由频谱泄漏或我应了解的任何其他问题强加的,或者我可以将该参数设置得尽可能高吗?
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.