Scipy FFT

Scipy FFT
Numpy e Scipy em Python têm muitas rotinas de FFT (do básico ao complexo). O conceito Scipy FFT será completamente examinado neste post. Também exploraremos como aplicá -lo na prática. Explicaremos quais são as funções Scipy FFT e daremos alguns exemplos de programação para você começar. O círculo.fft (), Scipy.fft rfft (), scipy.Os métodos FFT Shift (), Fftfreq () e FftConVolve () serão todos abordados em detalhes, juntamente com exemplos neste artigo. Os exemplos são fornecidos para esclarecer o tópico para você, para que você possa colocá -lo em prática com facilidade.

Explicação do Python Scipy FFT

O método de análise de Fourier define exclusivamente uma função como o total de componentes periódicos e deriva o sinal coberto pelo módulo Scipy Python chamado Scipy.fft. A função e sua transformação de Fourier (ft) são substituídos por equivalentes discretizados para produzir a transformação discreta de Fourier.

Usando uma sequência baseada no tempo, a transformação de Fourier, simplesmente chamada de Fourier, é uma função matemática que determina a velocidade de rotação geral, sua força e o deslocamento do ciclo para o ciclo potencial de cada padrão. Formas de onda, as operações primárias de tempo, espaço ou qualquer outra variável podem ser facilmente transformadas com a ajuda da transformação de Fourier.

Estudaremos o método de transformação de Fourier mais popular com exemplos nas seguintes subseções.

Exemplo 1:

Começamos descrevendo o Scipy.método fft () usando a seguinte parte do código. Neste exemplo, podemos ver que o Cipy.O método fft () pode calcular a transformação rápida de Fourier, recebendo uma variedade de valores e retornando o resultado. Olhe para cada linha do código.

Aqui, no código, você pode ver que os dois módulos, Scipy e Numpy, são importados primeiro. Depois disso, uma variável chamada "input_val" é criada na qual um Numpy.O método Array () é usado para produzir uma grade de valores. Depois disso, outra variável chamada "res_val" pode ser vista em que o círculo.O método FFT é usado onde o “input_val” criado é passado. Finalmente, o resultado é dado.

Importar Scipy
importar numpy
input_val = numpy.Array (Numpy.ARANGE (8))
res_val = scipy.fft (input_val)
Imprimir (res_val)

Aqui, a saída está anexada para sua referência:

Exemplo 2:

Vamos discutir a função Scipy FFT RFFT de Python. A transformação discreta de Fourier em uma dimensão da entrada real especificada é calculada pelo módulo scipy rfft () da linguagem de programação python.

A saída do método RFFT é do tipo ndarray. A entrada final se o eixo não for especificado ou a entrada que foi acolchoada com zero ou truncada e transformada ao longo do eixo fornecida pelo eixo.

Vamos tomar o programa como um exemplo executando o seguinte código. Tente compreender completamente o programa de código.

Na primeira linha, o método RFFT é importado do círculo.Módulo FFT. Depois disso, o método RFFT é aplicado aos valores de matriz criados. Os valores são 2,4,6 e 8. O resultado do método FFT é armazenado na variável criada chamada "Magnum". Por fim, a declaração "Print (Magnum)" é usada para mostrar o resultado.

de Scipy.fft importar rfft
magnum = rfft ([2, 4, 6, 8])
Imprimir (Magnum)

Esta é a maneira certa de usar o método scipy python rfft () e como calcular a transformação discreta de Fourier.

A seguir, é apresentado a saída que é gerada a partir do código anterior para sua ajuda:

Exemplo 3:

O terceiro exemplo deste artigo inclui os detalhes sobre o Python Scipy FFT Shift. O método fftShift () produz o y do tipo ndarray. Aqui, você é a matriz deslocada.

Vamos considerar este exemplo.

Inicialmente, você pode ver que importamos as bibliotecas necessárias. O código para fazer isso é “do Scipy.fft importar fftshift, fftfreq ”, como você vê no início do código que está anexado no seguinte. Depois disso, calculamos as frequências usando a segunda linha do código. Agora, fornecemos as frequências para um método de fftShift () usando o código "res = fftShift (frequências)". Finalmente, a impressão (res) é usada para exibir o resultado para os leitores.

de Scipy.fft importar fftshift, fftfreq
Frequncies = fftfreq (7,4)
res = fftShift (Frequncies)
Imprimir (res)

Anexado está a captura de tela resultante. Esta é a melhor maneira de mudar o componente zero-frequência do espectro para o ponto médio. É deslocado nas frequências definidas usando o método fftShift ():

Exemplo 4:

A frequência das amostras é controlada pelo ccepy ccepy.Módulo FFT. Os centros de bin de frequência são devolvidos pela matriz de flutuação "F". Está em ciclos por unidade. O método fftfreq () retorna um objeto ndary com o valor F.

A seguir, é apresentado outro programa de exemplo para entender melhor o conceito.

Primeiro, importamos as bibliotecas necessárias usando a declaração de importação. Então, como visto no código a seguir, ele produz um sinal e Fourier o transforma.

Nós importamos as bibliotecas necessárias (Numpy, FFT e FFTREQ) usando as instruções de importação. Depois disso, criamos um sinal. Então é transformado usando Fourier, como mostrado no código a seguir. Depois disso, calculamos as frequências da amostra e predefinamos o tempo como “time_st = 0.1 ”. Esta é a maneira recomendada de usar o método fftfreq () disponível no Python Scipy.

importar numpy
de Scipy.fft importar fft
de Scipy.fft importar fftfreq
criou_sig = Numpy.Array ([3, -4, 5, 0, 2, 5, 8, 10], dtype = float)
ft_val = fft (criado_sig)
data_val = criado_sig.tamanho
time_st = 0.1
Freq = fftfreq (data_val, d = time_st)
Imprimir (Freq)

Aqui está o resultado:

Exemplo 5:

A FFT é usada pelo método fftConVolve () do Scipy no Scipy.Módulo de sinal para cometer as matrizes n-dimensionais (transformada rápida de Fourier). O código de programação de amostra a seguir demonstra a ideia fftConVolve (). Consulte o seguinte código anexado.

O código é muito semelhante aos códigos de amostra anterior, exceto que usamos o método fftConVolve () aqui e determinamos o ruído e os níveis de autocorrelação.

Execute este código de amostra (consulte a seguinte imagem anexada) e entenda como usar o método fftConVolve () para cometer uma matriz n-dimensional:

de Scipy.Importação de sinal fftConVolve
Importar Scipy.sinal
importar numpy
importar matplotlib.pyplot como plt
Sig1 = Numpy.aleatório.default_rng ()
res = Sig1.Standard_Normal (500)
AutoCorrelação = fftConVolve (res, res [::-1], modo = 'completo')
fig, (orig_axes, mag_axes) = plt.subparcelas (2, 1)
orig_axes.Lote (res)
orig_axes.set_title ('ruído')
mag_axes.trama (Numpy.Arange (-len (res)+1, len (res)), autocorrelação)
mag_axes.set_title ('autocorrelação')
Figo.Fight_Layout ()
Figo.mostrar()

Veja a seguinte saída. Esta saída é gerada a partir do código anterior. O primeiro gráfico mostra o ruído e o segundo gráfico mostra a autocorrelação:

Conclusão

Scipy FFT é o tópico de discussão neste post. Para resumir, a simples matriz Numpy 1-D é passada para o círculo.método fft () que calcula a transformação rápida de Fourier e retorna a matriz transformada. Temos várias técnicas, incluindo scipy fft () shift (), fftfreq () e fftConVolve (). As amostras de programação e discussões detalhadas de cada uma dessas técnicas são fornecidas. Para entender melhor o tópico referido, consulte os códigos que são fornecidos neste artigo.