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.