{ "cells": [ { "cell_type": "markdown", "metadata": { "slideshow": { "slide_type": "slide" } }, "source": [ "# MAC0317/MAC5920\n", "## Introdução ao Processamento de Sinais Digitais\n", "### Seção 2.7: A DFT bidimensional" ] }, { "cell_type": "code", "execution_count": null, "metadata": { "slideshow": { "slide_type": "skip" } }, "outputs": [], "source": [ "import math as m\n", "from urllib.request import urlopen\n", "import numpy as np\n", "from imageio import imread\n", "import matplotlib.pyplot as plt\n", "from matplotlib import gridspec" ] }, { "cell_type": "markdown", "metadata": { "slideshow": { "slide_type": "slide" } }, "source": [ "### Definição da DFT bidimensional\n", "\n", "A transformada de Fourier de uma imagem $A\\in\\mathcal{M}_{m,n}(\\mathbb{C})$ segue bem de perto o exemplo 1.24, e corresponde aos coeficientes não-normalizados da mudança de base da representação usual (base canônica) para a base das formas básicas de onda bidimensionais dadas pelas matrizes $\\mathcal{E}_{k,l}$, definidas na seção 1.7.2 como\n", "\n", "$$\\left(\\mathcal{E}_{k,l}\\right)_{r,s} = e^{i2\\pi(kr/m+ls/n)},\\quad r=0,\\ldots,m-1,\\quad s=0,\\ldots,n-1,$$\n", "\n", "onde escrevemos $A=\\displaystyle\\sum_{k=0}^{m-1}\\sum_{l=0}^{n-1}c_{k,l}\\mathcal{E}_{k,l}$ e obtemos os coeficientes $c_{k,l}$ pelo teorema 1.8.3 como $c_{k,l}=\\frac{\\left(A,\\mathcal{E}_{k,l}\\right)}{mn}$." ] }, { "cell_type": "markdown", "metadata": { "slideshow": { "slide_type": "subslide" } }, "source": [ "### Definição 2.7.1 (DFT bidimensional)\n", "\n", "Dada uma matriz $A\\in\\mathcal{M}_{m,n}(\\mathbb{C})$, definimos sua DFT $\\hat{A}=DFT(A)\\in\\mathcal{M}_{m,n}(\\mathbb{C})$ como a matriz cujas componentes são\n", "\n", "$$\\hat{A}_{k,l} = \\left(A,\\mathcal{E}_{k,l}\\right) = \\sum_{r=0}^{m-1}\\sum_{s=0}^{n-1}A_{r,s}e^{-i2\\pi(kr/m+ls/n)},\\quad \\genfrac{}{}{0pt}{}{k=0,\\ldots,m-1,}{l=0,\\ldots,n-1}.$$\n", "\n", "**Observe** que nessa definição $k$ e $l$ são índices associados às *frequências de varredura por linhas e por colunas*, respectivamente, enquanto $r$ e $s$ são os índices de linhas e colunas dentro das matrizes $A$ e $\\mathcal{E}_{k,l}$.\n", "\n", "**Observe** também que a única diferença entre os coeficientes da DFT $\\hat{A}_{k,l}$ e os coeficientes $c_{k,l}$ da combinação linear que expressa $A$ em função das formas básicas de onda é a ausência da constante $\\frac{1}{mn}$ nos coeficientes da DFT. Isso é análogo à definição usada no caso unidimensional, sendo que necessariamente essa constante aparecerá na equação da IDFT." ] }, { "cell_type": "markdown", "metadata": { "slideshow": { "slide_type": "subslide" } }, "source": [ "### Observação 2.5\n", "\n", "Note que a expressão\n", "$$\\hat{A}_{k,l} = \\left(A,\\mathcal{E}_{k,l}\\right) = \\sum_{r=0}^{m-1}\\sum_{s=0}^{n-1}A_{r,s}e^{-i2\\pi(kr/m+ls/n)}$$\n", "é periódica em relação a $k$ e $l$, com períodos $m$ e $n$ respectivamente, ou seja\n", "$$\\hat{A}_{k+pm,l+qn} = \\hat{A}_{k,l},\\ \\forall p,q\\in\\mathbb{Z}.$$\n", "\n", "Em função disso, é possível visualizar a DFT bidimensional em outras faixas de frequência além de $k=0,\\ldots,m-1,\\quad l=0,\\ldots,n-1$. Uma escolha comum, análoga ao caso unidimensional, consiste em utilizar a faixa\n", "$$-\\frac{m}{2}