Introdução à animação de séries de Fourier
(andreinc.net)- Partindo da invariância rotacional do círculo e do círculo unitário, conecta visualmente o caminho que leva de seno e cosseno a números complexos, fórmula de Euler, ondas senoidais e epiciclos até a Fourier Series
- A rotação no círculo unitário permite interpretar $\sin$ como a coordenada y e $\cos$ como a coordenada x, e as duas funções têm período $2\pi$ e uma diferença de fase de $\frac{\pi}{2}$
- No plano complexo, $e^{ix}=\cos(x)+i\sin(x)$ representa a rotação no círculo unitário, e a onda senoidal complexa reúne cosseno e seno em um único objeto rotacional
- Ao somar várias ondas senoidais surgem reforço e cancelamento, e a combinação de frequências ímpares com amplitudes decrescentes aproxima cada vez mais formas descontínuas como uma onda quadrada
- Os epiciclos mostram cada onda senoidal como círculos em rotação e soma vetorial, onde o raio corresponde à amplitude $A$, a velocidade de rotação à frequência angular $\omega$ e o ângulo inicial à fase $\varphi$
Rotação começando com círculo, $\pi$ e radianos
- Um círculo é definido pelo centro $P(a,b)$ e pelo raio $r$, e algebricamente é expresso como $(x-a)^2+(y-b)^2=r^2$
- Se o centro estiver na origem e o raio for 1, temos o círculo unitário, e a equação se simplifica para $x^2+y^2=1$
- Um ponto sobre o círculo e seu ponto refletido no lado oposto mantêm sua relação mesmo após a rotação, e essa invariância rotacional serve como intuição central da matemática de Fourier
- $\pi$ é a razão entre a circunferência e o diâmetro de um círculo, com o mesmo valor em todos os círculos, $\pi \approx 3.14159...$
- A circunferência é $P=2\pi r$
- A área é $A=\pi r^2$
- $\pi$ não é racional e também é um número transcendente, ou seja, não é raiz de nenhum polinômio não nulo com coeficientes racionais
- O radiano é a unidade padrão para medir ângulos em matemática e física; para converter graus em radianos, multiplica-se o ângulo por $\pi$ e divide-se por 180
- Na matemática de Fourier, usar radianos permite tratar funções trigonométricas não só como ângulos, mas como funções de números reais, deixando mais limpo o cálculo diferencial e integral de ondas e vibrações
Interpretação de seno e cosseno no círculo unitário
- $\sin$ e $\cos$ podem ser vistos como rastreadores das coordenadas de um ponto que gira sobre o círculo unitário
- $\theta$ é o ângulo entre o raio e o eixo x positivo
- $\sin$ é o deslocamento vertical, isto é, a coordenada y
- $\cos$ é o deslocamento horizontal, isto é, a coordenada x
- Como o ponto retorna à posição inicial, $\sin$ e $\cos$ são funções periódicas com período $2\pi$
- $\cos$ tem a mesma forma de onda de $\sin$, mas deslocada em $\frac{\pi}{2}$, isto é, $90^\circ$
- $\sin(x+\frac{\pi}{2})=\cos(x)$
- Em termos técnicos, $\cos$ está adiantado em $\frac{\pi}{2}$ em relação a $\sin$
- Por causa dessa diferença de fase, as duas funções estão em relação de quadrature
- Na análise de Fourier, usar componentes seno e cosseno em conjunto permite representar qualquer sinal periódico, independentemente da posição inicial, isto é, da fase
- Sob a ótica da simetria da função, ou parity, $\cos$ é função par e $\sin$ é função ímpar
- $\cos(x)=\cos(-x)$
- $\sin(-x)=-\sin(x)$
Números complexos, $i$ e a fórmula de Euler
- No plano complexo, todos os pontos sobre o círculo unitário correspondem a números complexos com módulo 1
- Para um ângulo real $\theta$, $z=\cos(\theta)+i\sin(\theta)$ é um ponto no círculo unitário e representa uma rotação de $\theta$ a partir do eixo real positivo
- Multiplicar um número complexo por $i$ produz uma rotação de $\frac{\pi}{2}$, isto é, 90 graus, no sentido anti-horário no plano complexo
- O módulo $r=|a+bi|=\sqrt{a^2+b^2}$ é preservado
- Apenas o argumento aumenta em $\frac{\pi}{2}$
- Multiplicar repetidamente o mesmo número complexo por $i$ faz com que ele percorra os quadrantes em sequência e, após quatro vezes, volte à posição original
- A constante natural $e \approx 2.71828$ é irracional e transcendente, e pode ser definida por séries e limites
- $e=\sum_{n=0}^{\infty}\frac{1}{n!}$
- $e=\lim_{x\to\infty}(1+\frac{1}{x})^x$
- $e=\lim_{x\to0}(1+x)^{1/x}$
- A função exponencial natural é uma autofunção da derivação: ao derivá-la, a própria função reaparece multiplicada por uma constante
- $\frac{d}{dx}e^{ax}=ae^{ax}$
- Em $f(x)=e^{ix}$, cada derivada multiplica por $i$, e após quatro derivadas a função original reaparece
- $\frac{d}{dx}f(x)=ie^{ix}$
- $\frac{d^2}{dx^2}f(x)=-e^{ix}$
- $\frac{d^3}{dx^3}f(x)=-ie^{ix}$
- $\frac{d^4}{dx^4}f(x)=e^{ix}$
- Esse padrão é o mesmo de multiplicar repetidamente por $i$ em números complexos, o que leva à intuição de que $e^{ix}$ desenha um círculo no plano complexo
- A fórmula de Euler é $e^{ix}=\cos(x)+i\sin(x)$, e ao substituir $x=\pi$ obtemos $e^{i\pi}+1=0$
- Com a fórmula de Euler, seno e cosseno podem ser escritos em forma exponencial
- $\cos(x)=\frac{e^{ix}+e^{-ix}}{2}$
- $\sin(x)=\frac{e^{ix}-e^{-ix}}{2i}$
- O mesmo parâmetro $x$, $t$ ou $\theta$ pode ser interpretado como ângulo ou tempo dependendo do contexto, mas a forma matemática continua igual
Ondas senoidais e ondas senoidais complexas
- Uma onda senoidal é uma oscilação suave e repetitiva, expressa como função do tempo por $y(t)=A\sin(2\pi ft+\varphi)=A\sin(\omega t+\varphi)$
- Cada termo determina a forma e o movimento da onda
- $A$ é a amplitude, ou seja, o desvio máximo em relação ao valor central 0
- $f$ é a frequência comum, o número de oscilações completas por segundo, medida em Hz
- $\omega=2\pi f$ é a frequência angular, medida em radianos por segundo em vez de ciclos por segundo
- $\varphi$ é o deslocamento de fase, que move a onda senoidal para a esquerda ou para a direita no eixo x
- $\sin$ e $\cos$ são casos especiais de ondas senoidais, e a onda cosseno é equivalente a uma onda seno deslocada $\frac{\pi}{2}$ radianos para a esquerda
- Ajustando $A$, $\omega$ e $\varphi$, é possível representar vibrações muito diferentes, do som de um contrabaixo à corrente alternada doméstica
- Na fórmula de Euler, se o ângulo estático $\theta$ for trocado por $\omega t+\varphi$, obtemos uma onda senoidal complexa
- $s(t)=Ae^{i(\omega t+\varphi)}$
- $s(t)=A\cos(\omega t+\varphi)+iA\sin(\omega t+\varphi)$
- A onda senoidal complexa reúne duas ondas em um único objeto matemático
- A parte real se comporta como uma onda cosseno
- A parte imaginária se comporta como uma onda seno
- Como ambas dependem do mesmo ângulo de rotação $\theta=\omega t+\varphi$, permanecem sincronizadas
- Ao projetar a onda senoidal complexa no plano Y-Z, surge uma onda seno; ao projetá-la no plano X-Z, surge uma onda cosseno
- Um único objeto em rotação gera, como sombras em planos ortogonais, as familiares ondas senoidais de valor real
Soma de ondas senoidais e interferência
- Ao somar várias ondas senoidais, os valores da função em cada ponto se combinam, e os picos e vales podem se reforçar ou se cancelar dependendo do alinhamento
- Quando os picos e vales de duas ondas senoidais se encaixam em oposição, a soma pode se aproximar de 0
- Esse fenômeno pode ser entendido como interferência de ondas
- Por exemplo, ao somar duas ondas senoidais $y_1(x)=\frac{9}{10}\sin(7x+\frac{\pi}{2})$ e $y_2(x)=\frac{12}{10}\sin(3x-2)$, obtemos $y(x)=y_1(x)+y_2(x)$, que cria um padrão complexo
- Formas de onda com frequências e deslocamentos de fase diferentes alternam continuamente entre sincronização e dessincronização, e o padrão fica mais complexo à medida que mais ondas são adicionadas
Criando uma onda quadrada com ondas senoidais
- Se certas ondas senoidais forem escolhidas com cuidado, é possível criar padrões geométricos previsíveis
- Uma onda quadrada é formada pela seguinte soma infinita
- $y(x)=\frac{4}{\pi}\sin(\omega x)+\frac{4}{3\pi}\sin(3\omega x)+...+\frac{4}{(2k-1)\pi}\sin((2k-1)\omega x)+...$
- Essa expressão soma apenas frequências ímpares, e a amplitude de cada termo vai diminuindo gradualmente
- Ao somar curvas suaves e contínuas, a interferência entre picos e vales produz uma onda quadrada com topo achatado
- Quanto mais ondas senoidais entrarem na soma, mais nítida fica a aproximação
- Como uma única onda senoidal corresponde a um ponto girando ao redor de um círculo, o processo de somar ondas senoidais pode ser visto como epiciclos conectando círculos em rotação
- Nos epiciclos, o centro do segundo círculo fica na borda do primeiro, o do terceiro fica na borda do segundo, e assim por diante
- Cada epiciclo corresponde a uma onda senoidal específica, e combiná-los pode ser interpretado como uma soma vetorial sequencial
- Três ondas senoidais de exemplo se combinam assim
- $y_1(x)=1.4\sin(x+1)$
- $y_2(x)=0.8\sin(2x)$
- $y_3(x)=0.5\sin(3x)$
- $y(x)=1.4\sin(x+1)+0.8\sin(2x)+0.5\sin(3x)$
- Em qualquer instante, o vetor posição total pode ser expresso como $\vec{u}=\vec{u_1}+\vec{u_2}+\vec{u_3}$
- Escolhendo as ondas senoidais certas, os círculos em movimento podem aproximar formas desejadas, como flores, e descobrir as componentes individuais exige Fourier Analysis
Forma básica da Fourier Series
- A Fourier Series é o processo matemático de expandir uma função periódica de período $P$ como uma soma infinita de funções trigonométricas oscilantes
- Na analogia com a capa do álbum Dark Side of The Moon, do Pink Floyd, a função periódica $f(x)$ é a luz, o prisma é a Fourier Mathematics, e as cores separadas correspondem às componentes senoidais simples
- A fórmula básica é a seguinte
- $f(x)=A_0+\sum_{n=1}^{\infty}[A_n\cos(\frac{2\pi nx}{P})+B_n\sin(\frac{2\pi nx}{P})]$
- $A_0$, $A_n$ e $B_n$ são os Fourier coefficients, e indicam o quanto cada frequência é necessária para reconstruir a forma de onda original
- Os coeficientes são calculados por integração
- $A_0=\frac{1}{P}\int_{-\frac{P}{2}}^{+\frac{P}{2}}f(x)dx$
- $A_n=\frac{2}{P}\int_{-\frac{P}{2}}^{+\frac{P}{2}}f(x)\cos(\frac{2\pi nx}{P})dx$
- $B_n=\frac{2}{P}\int_{-\frac{P}{2}}^{+\frac{P}{2}}f(x)\sin(\frac{2\pi nx}{P})dx$
- Seno e cosseno são visualmente intuitivos, mas podem ser incômodos em manipulações algébricas, então a fórmula de Euler permite convertê-los para forma exponencial
- A Fourier Series em forma exponencial é
- $f(x)=\sum_{n=-N}^{N}C_ne^{i2\pi\frac{n}{P}x}$
- Na forma exponencial, o índice $n$ se estende a valores negativos, introduzindo o conceito de frequência negativa, que representa a direção de rotação de vetores complexos
- A fórmula unificada dos coeficientes é
- $C_n=\frac{1}{P}\int_{-\frac{P}{2}}^{\frac{P}{2}}e^{-i2\pi\frac{n}{P}x}f(x)dx$
Função caixa e cálculo dos coeficientes da onda quadrada
- A aproximação da onda quadrada usada antes é a seguinte
- $y(x)=\frac{4}{\pi}\sum_{k=1}^{\infty}\frac{\sin(2\pi(2k-1)fx)}{2k-1}$
- Usando $\omega=2\pi f$, temos $y(x)=\frac{4}{\pi}\sum_{k=1}^{\infty}\frac{\sin((2k-1)\omega x)}{2k-1}$
- A função de onda quadrada pode ser escrita no intervalo $[0,2L]$ usando a Heaviside Step Function como $f(x)=2[H(\frac{x}{L})-H(\frac{x}{L}-1)]-1$
- $A_0$ é a média da função no intervalo $[0,2L]$, e como a área positiva e a negativa se cancelam, ele vale 0
- $A_n$ é o coeficiente que governa os termos em $\cos$, e como $f(x)$ é ímpar e $\cos$ é par, o produto é ímpar
- Integrando ao longo de um período completo, as áreas se cancelam
- Todos os coeficientes $A_n$ são 0
- $B_n$ é o coeficiente que governa os termos em $\sin$
- Para $n$ par, a área vermelha e a área verde se cancelam, então a integral vale 0
- Nos termos ímpares, as áreas se somam
- O resultado do cálculo é $B_n=\frac{2}{n\pi}(1-(-1)^n)$
- Como restam apenas os termos ímpares de $B_n$, a onda quadrada assume a forma
- $f(x)=\frac{4}{\pi}\sum_{n=1,3,5...}^{+\infty}(\frac{1}{n}\sin(\frac{\pi nx}{L}))$
- Substituindo $n\rightarrow2k-1$, temos $f(x)=\frac{4}{\pi}\sum_{k=1}^{+\infty}\frac{\sin(\frac{\pi(2k-1)x}{L})}{2k-1}$
- Substituindo $L\rightarrow\frac{1}{2f}$ e $2\pi f\rightarrow\omega$, obtemos $f(x)=\frac{4}{\pi}\sum_{k=1}^{\infty}\frac{\sin((2k-1)\omega x)}{2k-1}$
- Na prática, não dá para somar infinitamente, então usa-se uma soma parcial $s(x)$ interrompida em um valor finito de $n$
- $s(x)=\frac{4}{\pi}\sum_{k=1}^{n}\frac{\sin((2k-1)\omega x)}{2k-1}\approx f(x)$
- À medida que $n$ cresce, a aproximação fica mais precisa, e a diferença restante diminui cada vez mais
- Os cinco primeiros termos são ondas senoidais simples com amplitudes que caem rapidamente e frequências que aumentam
Exemplos de onda triangular e onda dente de serra
- A aproximação por Fourier Series de uma onda triangular é
- $s(x)=\frac{8}{\pi^2}\sum_{k=1}^{N}\frac{(-1)^{k-1}}{(2k-1)^2}\sin((2k-1)x)$
- A onda triangular é suave e converge rapidamente, e quando $n$ se aproxima de 6 o formato triangular já fica claro
- Na expansão da onda triangular, termos de índice par como $s_2(x)$, $s_4(x)$ e $s_6(x)$ são negativos
- Como amplitude negativa não é fisicamente intuitiva, isso pode ser reescrito de duas formas
- Pode-se usar $\sin(-x)=-\sin(x)$ para tornar a frequência negativa
- Pode-se manter a amplitude positiva e somar uma fase de $\pi$
- Na prática, a segunda forma é mais útil e oferece melhor controle geométrico
- $-\frac{8}{3^2\pi^2}\sin(3x)$ pode ser escrito como $\frac{8}{3^2\pi^2}\sin(3x+\pi)$
- A função de onda dente de serra reversa tem a forma
- $s(x)=\frac{2}{\pi}\sum_{k=1}^{N}(-1)^k\frac{\sin(kx)}{k}$
Um dispositivo para ver a Fourier Series como epiciclos
- Em vez de uma equação estática, se vista como movimento físico, cada termo de Fourier se comporta como vários círculos em rotação ligados ponta a ponta sobre uma haste
- No dispositivo visual, é possível escolher a forma de sinal desejada entre sawtooth wave, triangle wave e square wave
- Cada elemento visual corresponde diretamente às variáveis da fórmula de Fourier
- O raio de cada círculo é a amplitude $A$
- A velocidade de rotação de cada círculo é a frequência angular $\omega$
- O ângulo inicial da haste dentro do círculo em $t=0$ é o deslocamento de fase $\varphi$
- Mesmo formas de onda complexas, pontiagudas e agudas podem ser decompostas em combinações de círculos que giram suavemente
- A animação mostra passo a passo a conexão entre círculo, ondas senoidais, números complexos, epiciclos e Fourier Series
1 comentários
Comentários no Hacker News
A transformada discreta de Fourier é apenas uma matriz ortogonal multiplicando um vetor, e a FFT inversa, o teorema de Plancherel e o teorema de Parseval também seguem naturalmente do fato de essa matriz ser ortonormal
Talvez essa abordagem só funcione para quem já entende álgebra linear, mas, depois que peguei a perspectiva discreta, também ficou fácil migrar para a transformada contínua de Fourier
Pessoalmente, foi muito mais fácil olhar diretamente para as fórmulas do que ficar vendo círculos e animações
[1] https://www.youtube.com/watch?v=spUNpyF58BY
[2] https://betterexplained.com/articles/an-interactive-guide-to...
[3] https://en.wikipedia.org/wiki/Discrete_Fourier_transform
O resto praticamente decorre disso. Em uma notação, a transformada de Fourier multiplica f(x) por e^{-ikx} e integra; a integral é um produto interno gigante, e e^{-ikx} é como a “transposta” do vetor de base e^{ikx}, então no fim você está expressando f_i naquele componente da base
Imagino que a maioria das pessoas que entende álgebra linear aprenderia transformada de Fourier da forma como aprende matemática avançada, ou seja, em livros-texto ou aulas universitárias. Nesse contexto, uma explicação como “matriz ortogonal multiplicando um vetor” seria o ponto de partida básico, mas pode parecer pouco intuitiva, e os vídeos no YouTube tentam preencher essa lacuna
Por exemplo, o vídeo do 3b1b volta a explicar devagar por que números complexos são úteis, o que mostra que o público-alvo já é outro
Por isso ainda verifico temas de matemática fazendo as demonstrações eu mesmo, para ver se consigo deduzir por conta própria
Seria ótimo se só olhar visualizações bonitas fizesse o conceito entrar magicamente na cabeça, mas para mim isso parece uma espécie de dopamina intelectual
É tipo dizer “monóide na categoria dos endofuntores” na área de sinais e sistemas
/nohref, e o link real é estehttps://www.andreinc.net/2024/04/24/assets/js/2024-04-24-fro...
Parece que a animação usa Processing
https://github.com/nomemory/andreinc-site/tree/main/assets/j...
Eu estava aprendendo p5.js enquanto escrevia o texto, então comecei de um jeito bem ineficiente e não tenho muito orgulho disso
Quando tiver tempo, pretendo revisar o texto e colocar o link correto
Eu até tinha um plano de visualizar toda a álgebra linear básica em Processing para me recuperar de depressão atípica, mas por um tempo não consegui mais programar no computador
Outras explicações às vezes só enfiam números complexos à força no final
Se você se interessa pelo tema, talvez também valha a pena ver minha visualização da transformada fracionária de Fourier [1] e minha visualização do plano complexo [2]
[1]: https://static.laszlokorte.de/frft-cube/
[2]: https://static.laszlokorte.de/complex-plane/
Se alguém gosta de criar material explicativo, seria legal também cobrir a transformada de Laplace [1]
Antigamente eu sabia usá-la para analisar circuitos eletrônicos, mas hoje quase esqueci tudo, então é quase um pedido preguiçoso
1: https://en.wikipedia.org/wiki/Laplace_transform
Mas este texto vai muito além daquela página. Vai ser ótimo para compartilhar com outras pessoas daqui para frente
Introduction to Graduate Algorithmsda Georgia Tech e implementar todo o conteúdo em PythonÉ uma aula realmente muito boa:
https://edstem.org/us/courses/47529/lessons/80063/slides/440...
Nunca tinha ouvido falar do Ed e tenho interesse, mas até a seção “see how it works” não mostra de fato como funciona. É uma pena esse padrão atual de exigir cadastro antes de qualquer coisa
Também existe um site útil que reúne vídeos e livros sobre séries de Fourier e transformada de Fourier:
https://howthefouriertransformworks.com/