|
MusicSpectrum
1.0.0
|
#include <fft.hpp>
Membros Públicos | |
| void | fftAnalyze (std::vector< T > &in, std::size_t stride, std::vector< Float_Complex > &out, std::size_t n) |
Membros Privados | |
| float | amp (Float_Complex z) |
| std::size_t | bitReverse (std::size_t k, std::size_t n) |
| void | applyHannWindow (std::vector< T > &in, std::size_t n) |
| void | applyHammingWindow (std::vector< T > &in, std::size_t n) |
| void | applyBlackmanWindow (std::vector< T > &in, std::size_t n) |
| void | applyFlattopWindow (std::vector< T > &in, std::size_t n) |
| void | fft (std::vector< T > &in, std::size_t stride, std::vector< Float_Complex > &out, std::size_t n) |
Classe template para realizar FFT em dados unidimensionais.
Esta classe implementa a Transformada de Fourier Rápida (FFT) para calcular a transformada discreta de Fourier de um sinal unidimensional. Esta implementação de FFT aplica o algoritmo de Cooley-Tukey. Suporta diferentes tipos de dados, como int, short, uint8_t, uint16_t, etc.
|
inlineprivate |
Função para calcular a amplitude de um número complexo
Calcula a amplitude (módulo) de um número complexo z.
z: Um número complexo do tipo std::complex<float>.
Rertono: A amplitude (módulo) do número complexo z, calculada como a raiz quadrada da soma dos quadrados das partes real e imaginária.
|
private |
Janela de Blackman
Aplica a janela de Blackman aos dados de entrada in com tamanho n.
in: Uma referência a um vetor de dados de entrada do tipo T.
n: O tamanho do vetor de dados de entrada.
|
private |
Janela de Flattop
Aplica a janela de Flattop aos dados de entrada in com tamanho n.
in: Uma referência a um vetor de dados de entrada do tipo T.
n: O tamanho do vetor de dados de entrada.
|
private |
Janela de Hamming
Aplica a janela de Hamming aos dados de entrada in com tamanho n.
in: Uma referência a um vetor de dados de entrada do tipo T.
n: O tamanho do vetor de dados de entrada.
|
private |
Janela de Hann
Aplica a janela de Hann aos dados de entrada in com tamanho n.
in: Uma referência a um vetor de dados de entrada do tipo T.
n: O tamanho do vetor de dados de entrada.
|
private |
Função para reversão de bits
Realiza a reversão de bits de um índice k em um número binário de n bits.
k: O índice a ser revertido.
n: O número de bits do índice k.
Returno: O índice k com seus bits revertidos.
|
private |
Função recursiva para realizar a FFT
Realiza a Transformada Rápida de Fourier (FFT) nos dados de entrada.
in: Uma referência a um vetor de dados de entrada do tipo T.
stride: O passo entre os elementos do vetor de entrada.
out: Uma referência a um vetor de número complexo do tipo
Float_Complex para armazenar a saída da FFT.
n: O tamanho do vetor de dados de entrada e saída.
| void FFT< T >::fftAnalyze | ( | std::vector< T > & | in, |
| std::size_t | stride, | ||
| std::vector< Float_Complex > & | out, | ||
| std::size_t | n | ||
| ) |
Função principal para análise de espectro
Realiza a análise do espectro dos dados de entrada usando a Transformada Rápida de Fourier (FFT) e armazena o resultado em out.
in: Uma referência a um vetor de dados de entrada do tipo T.
stride: O passo entre os elementos do vetor de entrada.
out: Uma referência a um vetor de números complexos do tipo.
Float_Complex para armazenar o espectro calculado.
n: O tamanho do vetor de dados de entrada e saída.