Usando uma tabela, escreva a transformada de Fourier dos seguintes sinais. Faça um programa scilab para plotar tanto o sinal quanto a transformada.
Passo 1
O que o enunciado pede:
- Escrever a transformada de Fourier do sinal
. - Fazer um programa Scilab para plotar tanto o sinal no tempo quanto a sua transformada (no sentido prático: representar os impulsos da transformada).
Informações dadas:
- O sinal no tempo é
. - Não há outras restrições (uso de convenção de transformada, etc.). Vou usar a convenção padrão com frequência angular
.
Passo 2
Definição e convenção que vou usar (essencial para a prova):
Explicando cada símbolo:
-
é o sinal no tempo (função real de ). -
é a transformada de Fourier em função da frequência angular . -
é a unidade imaginária ( ). -
é o núcleo da transformada.
Essa é a convenção mais usada em sinais e sistemas; se na sua prova usarem outra (por exemplo fatoresdistribuídos), adapte a mesma ideia de cálculos abaixo.
Passo 3
Propriedades úteis que vamos usar (vou explicar cada uma):
- Transformada de uma exponencial complexa:
O
é a função delta de Dirac: é nula para
e “integra 1” em torno de
. Na prática isso significa que uma exponencial pura corresponde a um impulso no domínio da frequência localizado em
.
- Identidade seno → exponenciais:
Isso nos deixa trabalhar com exponenciais complexas (cujo transformada conhecemos).
-
Linearidade:
Seentão . -
Propriedade de deslocamento no tempo (muito importante aqui):
Se, então
Ou seja, deslocar em tempo multiplica a transformada por um fator de fase
. Isso preserva a localização dos impulsos, apenas acrescenta fase dependente de
.
Passo 4
Transformada de
(caso básico):
- Usando a identidade exponencial com
:
- Aplicando a transformada por linearidade e usando a regra da exponencial:
- Simplificando:
Explicação: cada exponencial vira um impulso em
; a diferença e o fator
resultam na expressão acima.
Passo 5
Multiplicação por constante e deslocamento no tempo:
- Nosso sinal é
. - Primeiro a multiplicação por
dá um fator na transformada. - Depois, o deslocamento
aplica um fator de fase à transformada de .
Assim, aplicando as propriedades:
Passo 6
Interpretando e simplificando os termos com
:
Como “seleciona” valores de
, podemos escrever explicitamente os coeficientes frontais dos impulsos em
:
Como
- Coeficiente do impulso em
:
- Coeficiente do impulso em
(veja o sinal negativo dentro dos parênteses):
Portanto uma forma explícita:
Observação de simplificação: como
, outra forma é
mas ambas as formas são equivalentes — escolha a que achar mais clara na prova.
Passo 7
Tabela (pedido explícito: usar uma tabela) com domínio do tempo e domínio da frequência:
| Sinal no tempo | Transformada de Fourier
|
|---|---|
|
|
|
Explicação prática: a transformada consiste em dois impulsos localizados em
com amplitudes complexas que carregam a fase introduzida pelo deslocamento temporal
.
Passo 8
Como visualizar/plotar na prática (limitação): a transformada teórica é composta de deltas (impulsos infinitamente estreitos), que não são diretamente desenháveis num gráfico contínuo. Em implementações numéricas representamos cada
como uma “seta” (stem) ou um pico discreto com magnitude e fase dadas pelos coeficientes que calculamos. Vou dar um programa Scilab que:
- plota
no tempo (amostra contínua numérica), - plota as “impulsões” da transformada como pontos (stem) em
e , mostrando magnitude e fase.
Código Scilab (copie e cole no Scilab; comentários em português):
// Plot do sinal no tempo e representação prática da sua TF (impulsos)
clear; clc;
// 1) sinal no tempo
t = linspace(-10, 10, 2000); // vetor de tempo
f = 10*sin(t - 2); // f(t) = 10 sen(t-2)
// 2) calcular pesos dos impulsos da TF (usando a expressão teórica)
w_pos = 10*%pi/%i * exp(-%i*2); // coeficiente em omega = +1
w_neg = -10*%pi/%i * exp(%i*2); // coeficiente em omega = -1
// Observe: %i é a unidade imaginária em Scilab, %pi é pi
// 3) plote o sinal no tempo
figure(1);
plot(t, f);
xlabel("t");
ylabel("f(t)");
title("Sinal no tempo: f(t) = 10 sin(t-2)");
xgrid();
// 4) plote a transformada (representação por impulsos)
// Vamos mostrar magnitude e fase em subplots
omega = [-1, 1];
weights = [w_neg, w_pos]; // correspondente a omega = -1 e omega = +1
// Magnitude (stem)
figure(2);
subplot(2,1,1);
stem(omega, abs(weights), 'Marker','o');
xtitle("Magnitude da transformada (impulsos)", "omega", "|F(omega)|");
xgrid();
// Fase (stem)
subplot(2,1,2);
phase = atan2(imag(weights), real(weights)); // fase em radianos
stem(omega, phase, 'Marker','o');
xtitle("Fase da transformada (impulsos)", "omega", "arg(F(omega)) [rad]");
xgrid();
// Opcional: mostrar valores numéricos dos pesos
disp("Coeficientes dos impulsos:");
disp("omega = -1 :");
disp(weights(1));
disp("omega = +1 :");
disp(weights(2));
Breve explicação do código:
- Amostrei o tempo entre
e para desenhar . - Os coeficientes dos impulsos são calculados diretamente da expressão teórica (usei %pi e %i do Scilab).
- Para a transformada, usei stem para desenhar duas “setas” em
e ; uma plotagem mostra magnitude, outra mostra fase (em radianos). - O comando disp imprime no console os coeficientes complexos, úteis para verificar amplitude e fase numérica.
Resposta
Programa Scilab:
// Plot do sinal no tempo e representação prática da sua TF (impulsos)
clear; clc;
// 1) sinal no tempo
t = linspace(-10, 10, 2000); // vetor de tempo
f = 10*sin(t - 2); // f(t) = 10 sen(t-2)
// 2) calcular pesos dos impulsos da TF (usando a expressão teórica)
w_pos = 10*%pi/%i * exp(-%i*2); // coeficiente em omega = +1
w_neg = -10*%pi/%i * exp(%i*2); // coeficiente em omega = -1
// 3) plote o sinal no tempo
figure(1);
plot(t, f);
xlabel("t");
ylabel("f(t)");
title("Sinal no tempo: f(t) = 10 sin(t-2)");
xgrid();
// 4) plote a transformada (representação por impulsos)
omega = [-1, 1];
weights = [w_neg, w_pos]; // correspondente a omega = -1 e omega = +1
figure(2);
subplot(2,1,1);
stem(omega, abs(weights), 'Marker','o');
xtitle("Magnitude da transformada (impulsos)", "omega", "|F(omega)|");
xgrid();
subplot(2,1,2);
phase = atan2(imag(weights), real(weights)); // fase em radianos
stem(omega, phase, 'Marker','o');
xtitle("Fase da transformada (impulsos)", "omega", "arg(F(omega)) [rad]");
xgrid();
disp("Coeficientes dos impulsos:");
disp("omega = -1 :");
disp(weights(1));
disp("omega = +1 :");
disp(weights(2));