Instituto de Ciências e Tecnologia Campus de Sorocaba
Por: Levi De Souza Correia • 17/6/2024 • Trabalho acadêmico • 3.978 Palavras (16 Páginas) • 34 Visualizações
[pic 1]
Instituto de Ciências e Tecnologia - Campus de Sorocaba
RESUMO
Com base nas orientações fornecidas em sala de aula pelo Prof. Dr. Everson Martins, responsável pela disciplina de Sinais e Sistemas, foi elaborado um relatório que descreve a criação de um programa capaz de realizar operações matemáticas relacionadas ao curso. O objetivo principal desse programa é calcular a Transformada Rápida de Fourier (Fast Fourier Transform - FFT) a partir de um arquivo de entrada. No entanto, as operações matemáticas envolvem números complexos, o que implica que a linguagem de programação escolhida deve ser capaz de lidar com esse tipo de cálculo. Portanto, optou-se por utilizar a linguagem Python para essa tarefa específica. Assim, foi desenvolvido um programa em Python capaz de realizar a FFT com base em um arquivo de entrada no formato de texto.
Palavras-chave: Transformada rápida de Fourier. Sinais. Computação. Algoritmo. Python. Série e Transformada de Fourier. Função Recursiva.
SUMÁRIO
1. INTRODUÇÃO 2
1. FUNDAMENTAÇÃO TEÓRICA 4
2. DESENVOLVIMENTO DO CÓDIGO: 8
2.1 Importar Biblioteca: 8
2.2 Código principal 9
2.3 Código para gerar função senoidal 11
2.4 Código para gerar função pulso 13
2.5 Código para gerar função quadrada 14
2.6 Código para gerar função exponencial 15
3. CONCLUSÃO 17
4. REFERÊNCIAS 18
Lista de Imagem
Figura 1 - Ilustração do fluxograma do algoritmo de Cooley e Tukey para FFT 3
Figura 2 - Ilustração Gráfica da Transformada de Fourier. 6
Figura 3- Gráfico das senoides 13
Figura 4 - Gráfico da função pulso 14
Figura 5 - Gráfico de uma onda quadrada 15
Figura 6 - Gráfico de função exponencial 17
INTRODUÇÃO
Pode-se compreender os sinais em tempos contínuos e tempos discretos ao analisar suas propriedades e as transformações que ocorrem em um sistema. Isso é feito por meio da entrada (𝑥(𝑡) ou 𝑥[𝑛]), resposta do sistema (ℎ(𝑡) ou ℎ[𝑛]) e saída (𝑦(𝑡) ou 𝑦[𝑛]), interpretando-os através da soma de convolução ou utilizando a transformada de Fourier, que representa o sinal como uma senóide no domínio da frequência. Essa transformação permite a interpretação física do sinal analisado.
Uma forma de realizar a transformada de Fourier é utilizando a Discrete Fourier Transform (DFT), que converte uma sequência finita de amostras igualmente espaçadas de uma função em uma sequência do mesmo comprimento. No entanto, a DFT requer a soma de todos os valores reais e imaginários, pois para sua aplicação, é necessário ter todos os valores perfeitos, não apresentando as propriedades de simetria e periodicidade que a FFT possui.
Devido ao fato de os computadores e sistemas virtuais se basearem em lógica binária digital, essas máquinas e softwares precisam operar por meio de operações discretas, processando os dados disponíveis. Quando há a necessidade de um sinal contínuo de entrada, o computador converte o sinal discreto em contínuo por meio de amostragem aproximada.
Para atender às demandas de processamento de sinais discretos, foi desenvolvida a técnica conhecida como Transformada Discreta de Fourier (Discrete Fourier Transform - DFT). No entanto, essa operação requer muitos recursos computacionais, tornando sua implementação em computadores complicada. Como resultado, foi desenvolvido um método mais eficiente para realizar a transformada de Fourier computacionalmente, chamado de Transformada Rápida de Fourier (Fast Fourier Transform - FFT), que economiza os recursos de processamento necessários pela máquina.
Através da FFT, tornou-se possível implementar operações envolvendo transformadas de Fourier em uma ampla variedade de sistemas computacionais, justamente por ser um processo mais otimizado, que requer menos recursos de processamento.
O desenvolvimento do cálculo baseado na decimação em frequência para a implementação da FFT, com o auxílio do Butterfly Diagram, envolve a amostragem de 𝑁 pontos de dados de entrada, que são introduzidos de forma ordenada e divididos em somatórias de amostragens ímpares e pares de uma função 𝑥[𝑛]. Após os cálculos das DFTs desses pontos pela FFT, eles são reorganizados pelo método bit-reverse, resultando em 𝑁 valores para as componentes complexas de Fourier em sua saída, conforme ilustrado na figura 1.
[pic 2]
Figura 1 - Ilustração do fluxograma do algoritmo de Cooley e Tukey para FFT
Além disso, após o código do aplicativo transformar o sinal por meio de FFT, uma função específica é desenvolvida para "interpretar" a recombinação de saída testemunhada por DIF, e sob a ordem correta de valores complexos, a representação gráfica é desenvolvida para compreensão visual e verificação do seno Aproximação da curva e análise periódica do gráfico, como "espelho", pois 𝑁 amostras pode-se obter 𝑁/2 frequências harmônicas.
FUNDAMENTAÇÃO TEÓRICA
Para implementar o algoritmo do FFT da melhor maneira possível, é necessário compreender os conceitos subjacentes a esse algoritmo. Nesse sentido, os conceitos da Série de Fourier e da Transformada de Fourier são relevantes. Em resumo, a Série de Fourier consiste na decomposição de uma função periódica em uma soma de senoides. Um exemplo comum é uma onda quadrada, que possui uma forma periódica, porém não senoidal. É possível decompor essa onda quadrada em uma soma de senos e/ou cossenos, demonstrando que é possível representar a forma dessa onda quadrada como a soma de um número x de senoides.
...