Fast Fourier Transform: FFTW

De Wikijoan
Dreceres ràpides: navegació, cerca

Contingut

Teoria FFT

Hi ha molts enllaços:

Llenguatge C

FFTW is a C subroutine library for computing the discrete Fourier transform (DFT) in one or more dimensions, of arbitrary input size, and of both real and complex data (as well as of even/odd data, i.e. the discrete cosine/sine transforms or DCT/DST). We believe that FFTW, which is free software, should become the FFT library of choice for most applications.

Descarrego fftw-3.3.tar.gz

$ ./configure
$ make
$ sudo make install

Question 3.12. How do I FFT an image/audio file in foobar format?

FFTW performs an FFT on an array of floating-point values. You can certainly use it to compute the transform of an image or audio stream, but you are responsible for figuring out your data format and converting it to the form FFTW requires.

El primer exemple:

$ gcc -o fftw3_prb fftw3_prb.c -lfftw3

Compila i s'executa bé, són diferents exemples entre els que hi ha la FFT d'un vector de números reals, que és el que a mi m'interessa. La sortida són uns Output FFT Coefficients, que he de veure com es relaciona amb trobar el espectrograma d'aquest vector.

Llenguatge C++

I si vull treballar amb C++?

FFTW++ depèn de FFTW, per tant també he de fer la instal.lació anterior.

FFTW++ is a C++ header class for the FFTW Fast Fourier Transform library that automates memory allocation, alignment, planning, and wisdom. In 2D and 3D, implicit dealiasing of convolutions substantially reduces memory usage and computation time.

descarrego fftw++-1.09.tar.gz

$ cd fftw++-1.09
$ g++ -o example1r example1r.cc fftw++.cc -lfftw3

Com utiliitzar la FFT per a un senyal d'audio

Doncs aquí està bastant ben explicat:

Ara bé, seria interessant repassar tot el tema de la FFT i transformades de Fourier.

Important també per veure els resultats és treballar amb gnuplot, que instalo des de les fonts.

Windowing

És habitual aplicar al senyal, abans de calcular la FFT i trobar l'espectre, una finestra:

Depenent de la finestra aplicada el resultat espectral és una mica diferent. Això es pot veure amb l'Audacity, on podem escollir el tipus de finestra.

Aplicar una finestra és fer una mena de convolució com es veu en el segon enllaç.

Tuners per a JACK

La idea inicial era fer un tuner per a JACK, però evidentment ja està fet. Els dos casos que he trobat utilitzen fftw.h.


creat per Joan Quintana Compte, febrer 2012

Eines de l'usuari
Espais de noms
Variants
Accions
Navegació
IES Jaume Balmes
Màquines recreatives
CNC
Informàtica musical
joanillo.org Planet
Eines