Exercícios Resolvidos de Transformada de Fourier

Ver Teoria

Enunciado

Uma propriedade da Transformada de Fourier é que a transformada da convolução de duas funções equivale à multiplicação das duas no domínio da freqüência. Portanto, para calcular a convolução de uma função levamos os dois sinais para o domínio da freqüência, os multiplicamos e voltamos para o domínio do tempo.

Digamos que você queira calcular a convolução c ( t ) das funções x t e h ( t ) . Você pode fazer isso da seguinte maneira:

c t = x t * h t = i f f t { f f t [ x ( t ) ] ∙ f f t [ h ( t ) ] }

Considerando essa propriedade, calcule a convolução das formas de onda:

x t = e - 5 t e h t = cos ⁡ ( 2,5 t ) - t

Passo 1

Neste exercício, vamos usar o comando f f t e i f f t (comando novo que vamos aprender aqui!) para calcular x t * h t . No nosso programa, vamos primeiramente entrar com x ( t ) e h ( t ) no domínio do tempo. Em seguida, aplicaremos em x ( t ) e h ( t ) a função do MATLAB f f t para calcular as funções no domínio da frequência e então multiplicaremos os resultados entre si.

No resultado da multiplicação, vamos usar a função do MATLAB i f f t , que calcula a inversa da transformada de Fourier, para voltar ao domínio do tempo. A saída de i f f t é a convolução de x ( t ) e h ( t ) e a solução do exercício.

Passo 2

Em um script novo, vamos criar um vetor t representando o domínio do tempo e, em seguida, entrar com x ( t ) e h ( t ) :

Na primeira linha, criamos o vetor t , que vai de 0 a 5 , com um passo de 0,01 .

Na segunda e na terceira linha, calculamos x ( t ) e h ( t ) para cada elemento do vetor t . Os resultados são armazenados nos vetores x e h , respectivamente. Portanto, os vetores x e h representam x ( t ) e h ( t ) em um domínio de tempo 0 ≤ t ≤ 5 .

Para ver a cara de x ( t ) e h ( t ) plotando suas curvas em um mesmo gráfico, digite os comandos abaixo:

Na primeira linha, pedimos ao MATLAB para gerar uma figura com o comando f i g u r e ( 1 ) , para termos o gráfico de x ( t ) e h ( t ) em uma janela diferente do gráfico do resultado da convolução (que será gerado mais pra frente). Em seguida, com o comando p l o t ( t , x ,   t , h ) , as curvas de x em função de t e h em função de t são geradas.

O comando l e g e n d fará com que o gráfico tenha uma legenda, indicando quem é x e quem é h . As legendas dentro de l e g e n d devem estar na mesma ordem das curvas em p l o t .

Execute o programa para ver o gráfico de x ( t ) e h ( t ) :

Passo 3

Após definir x ( t ) e h ( t ) , vamos aplicar a transformada de Fourier neles para calculá-los no domínio da frequência. Para isto, usaremos a função f f t ( ) do MATLAB, que tem a sintaxe:

Y = f f t ( X )

A entrada da função f f t ( ) é um vetor X contendo dados no domínio do tempo, representados por números reais. Já a saída é um vetor Y com números complexos: é a conversão de X no domínio do tempo para o domínio da frequência. Os vetores X e Y têm a mesma quantidade de elementos.

Logo, digite em seu programa as duas linhas de código:

Na primeira linha, calculamos a transformada de Fourier de x ( t ) e armazenamos o resultado em f f t x . Na segunda linha, fazemos a mesma coisa pata h ( t ) , cuja transformada é armazenada em f f t h .

O próximo passo é multiplicar as funções no domínio da frequência uma pela outra. Para isto, multiplicaremos o vetor f f t x por f f t h , elemento a elemento, entrando com a seguinte linha de código:

Usando o operador . * , multiplicamos cada elemento de f f t x pelo elemento de   f f t h que está na mesma posição. O resultado dessa operação é armazenado em f f t c , que representa a convolução no domínio da frequência.

Passo 4

O vetor f f t c está no domínio da frequência e teremos o resultado da convolução x t * h ( t ) ao passá-lo para o domínio do tempo. Para isto, usaremos a função i f f t ( ) do MATLAB, que tem a sintaxe:

X = i f f t ( Y )

A entrada da função i f f t ( ) é um vetor Y contendo dados no domínio da frequência, representados por números complexos. Já a saída é um vetor X com números reais: é a conversão de Y no domínio da frequência para o domínio do tempo. Os vetores X e Y têm a mesma quantidade de elementos.

Resumindo, i f f t faz o inverso de f f t , calculando a transformada de Fourier inversa de uma função no domínio da frequência.

Portanto, inclua em seu código o comando:

Para ver o resultado da convolução, plote c em função de t (o domínio do tempo) com as linhas de código:

Na primeira linha, pedimos ao MATLAB para gerar uma segunda figura com o comando f i g u r e ( 2 ) , para termos o gráfico do resultado da convolução em uma janela separada do primeiro gráfico. Em seguida, usamos o comando p l o t para plotar a curva da solução da convolução x t * h ( t ) . Execute o programa para ver o gráfico.

Resposta