fft和小波 [英] fft and wavelets

查看:142
本文介绍了fft和小波的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我可以使用fft获取说"ahhhh"的人的1秒钟加载音频文件的频率,相位和幅度,然后重新创建它. 我现在想做的是在1秒的音频文件中找出每个频率的开始位置和结束位置,并将数据放入数组中

示例:100hz从0.23秒到0.34秒开始, 104.34hz开始于.35秒,结束于.37秒.

fft可以这样做吗?还是需要转移整个程序才能使用小波?八度中还有一些小波示例可以显示如何完成我要完成的工作吗?

我正在使用仓库中的Ubuntu Linux 12.04和Octave 3.2.4

谢谢 里克

解决方案

FFT作为一种估计离散傅立叶变换的算法(光谱图以了解STFT的实现让您开始.

I can use fft to get the, frequencies, phases and magnitude of a loaded 1 second audio file of person saying "ahhhh" and recreate it. What I'm trying to do now is to find out where each of those frequencies begin and where they end in the 1 second audio file and place the data into an array

Example:100hz starts at .23seconds to .34seconds, 104.34hz starts at .35seconds and ends at .37seconds.

Can fft's do this or do I need to shift my whole program to use wavelets? Also are there any wavelet examples in octave that show how to do what I'm trying to accomplish?

I'm using Ubuntu Linux 12.04 and Octave 3.2.4 from the repo's

Thanks Rick

解决方案

FFT as an algorithm to estimate a Discrete Fourier Transform (DFT), provides the frequency content of your audio signal (magnitude and phase as you mention). This will give you a set of magnitude/phase values per discrete frequency bin, which you can map to a continuous frequency value (based on the bin index or discrete frequency, the number of FFT points and the sampling frequency of your signal).

DFT though (via FFT) is a global transform, i.e. you will loose the notion of time since you are moving to the frequency domain. What you need is the Short-Time Fourier Transform (STFT),i.e. FFT on short time-frame (windows) of the signal. This will give you as output a time-frequency representation in which you can specify frequency content per analysis window, and thus per short-time instances.

Approach sketch: Define temporal window length and window shifts (based on the desired time resolution or linearly-sampled time instances), run STFT and then a method for peak-picking or local maxima estimation on the Fourier magnitude in each window. This will give you locations of dominant frequencies which you can track across-time (onsets etc.)

In MATLAB check spectrogram for an implementation of STFT to get you started.

这篇关于fft和小波的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆