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 enunciado pede duas coisas claras:
- Escrever, numa tabela, a transformada de Fourier do sinal dado.
- Fazer um programa Scilab que plote tanto o sinal no tempo quanto a sua transformada.
Informações relevantes que o enunciado dá:
- O sinal é
. - Não há ambiguidade sobre o sinal; é a soma de dois impulsos de Dirac localizados em
e . - Não foi especificada outra convenção, então vamos usar a convenção usual (mais comum em sinais/controle/sinais e sistemas):
A partir disso temos que calcular
e preparar o código para plotar
(como impulsos discretos) e
(função contínua de
).
Passo 2
Relembrando propriedades e fórmulas que preciso usar (explicação didática passo a passo):
- Definição da transformada de Fourier (convenção que usaremos):
onde:
-
é a variável de tempo (real), -
é a frequência angular (em rad/s), -
é a unidade imaginária. -
Propriedade do impulso de Dirac (mais importante aqui): para qualquer função razoável
,
Isto é, o impulso “pega” o valor da função no ponto onde o impulso está localizado.
- Transformada de um impulso deslocado: aplicando a definição diretamente a
,
Explicando: usamos a propriedade do delta, com
, o integral resulta em
.
- Linearidade: a transformada da soma é a soma das transformadas:
Essas três ideias (definição, propriedade do delta e linearidade) são suficientes para resolver a questão.
Passo 3
Aplicando as propriedades ao sinal dado, processando termo a termo:
O sinal é
Trabalhamos cada impulso separadamente usando a fórmula da transformada de um impulso deslocado:
- Para
note que isso é , ou seja . Então
- Para
temos . Então
Pela linearidade, a transformada total é a soma:
Passo 4
Simplificar a expressão usando a identidade de Euler (útil para interpretar o resultado e para provas):
Portanto, de forma real e simples:
Comentário didático: isso faz sentido fisicamente — a soma de dois impulsos simetricamente deslocados produz uma transformada real e par (função de cosseno), porque os dois deslocamentos geram componentes complexas conjugadas que somam para dar um coseno.
Passo 5
Tabela pedida (sinal
transformada). Uso uma tabela simples com duas colunas: sinal no tempo e sua transformada.
| Sinal
|
Transformada
|
|---|---|
|
|
|
(na tabela eu peguei diretamente o sinal do enunciado e apliquei a propriedade do delta + linearidade, como mostrado nos passos anteriores)
Passo 6
Programa Scilab para plotar o sinal no tempo (como impulsos) e a transformada
.
Vou explicar linha a linha logo após o código; copie e cole no Scilab e execute.
Vou explicar linha a linha logo após o código; copie e cole no Scilab e execute.
Scilab code:
// Plot do sinal f(t) = delta(t+1) + delta(t-1) (representado como stem/impulsos)
clf;
t = -2:0.01:2; // eixo de tempo para desenhar (contínuo para visual)
imp = zeros(t); // vetor de zeros
// marcamos impulsos aproximados: como spikes verticais para visualização
imp(sum(t<=-1+1e-6 & t>=-1-1e-6)) = 1; // tentativa de marcar posição exata (backup)
imp(find(abs(t+1)<0.01)) = 1; // marca região pequena perto de t=-1
imp(find(abs(t-1)<0.01)) = 1; // marca região pequena perto de t=1
subplot(2,1,1);
plot(t, imp, 'k-'); // linha preta para "base"
hold on;
stem([-1 1], [1 1], 'filled'); // desenha os impulsos discretos em t=-1 e t=1
title('Sinal no tempo: f(t) = \delta(t+1) + \delta(t-1)');
xlabel('t');
ylabel('amplitude');
xgrid();
// Plot da transformada F(omega) = 2*cos(omega)
w = -10:0.01:10; // eixo de frequência (omega)
F = 2*cos(w);
subplot(2,1,2);
plot(w, F, 'b-');
title('Transformada de Fourier: F(\omega) = 2 cos(\omega)');
xlabel('\omega (rad/s)');
ylabel('F(\omega)');
xgrid();
Explicação prática do código:
- Primeiro bloco: crio um eixo de tempo denso e uma representação visual dos impulsos. Como o Dirac não é representável numericamente, eu uso um plot com stem em
e para mostrar os impulsos como setas/linhas verticalizadas. stem([-1 1], [1 1], 'filled')desenha justamente os impulsos de amplitude 1 eme . - Segundo bloco: construo um eixo de frequência
e avalio em cada ponto, plotando em seguida. - Faixas
a em são razoáveis para visualizar várias oscilações do cosseno; você pode ajustar para mais/menos resolução.
Dica para prova: ao representar impulsos num gráfico em papel, desenhe apenas setas verticais em
e
com amplitude 1 (e anote que são deltas). Para a transformada, desenhe a função
— mostra claramente que é real, par e oscilatória.
Passo 7
Interpretação final e verificação rápida (como checar no relógio da prova):
- Ponto rápido de verificação: calcule a transformada de cada delta usando
e some; se as potências exponenciais forem conjugadas (como aqui), espere um coseno real. - Outra verificação: calcule
. Substituindo na expressão final , obtemos . Isso faz sentido: que é a área total do sinal no tempo; a área de cada delta de amplitude 1 é 1, soma 2 — bate certinho.
Resposta
Scilab program:
// Plot do sinal f(t) = delta(t+1) + delta(t-1) (representado como stem/impulsos)
clf;
t = -2:0.01:2; // eixo de tempo para desenhar (contínuo para visual)
imp = zeros(t); // vetor de zeros
// marcamos impulsos aproximados: como spikes verticais para visualização
imp(sum(t<=-1+1e-6 & t>=-1-1e-6)) = 1; // tentativa de marcar posição exata (backup)
imp(find(abs(t+1)<0.01)) = 1; // marca região pequena perto de t=-1
imp(find(abs(t-1)<0.01)) = 1; // marca região pequena perto de t=1
subplot(2,1,1);
plot(t, imp, 'k-'); // linha preta para "base"
hold on;
stem([-1 1], [1 1], 'filled'); // desenha os impulsos discretos em t=-1 e t=1
title('Sinal no tempo: f(t) = \delta(t+1) + \delta(t-1)');
xlabel('t');
ylabel('amplitude');
xgrid();
// Plot da transformada F(omega) = 2*cos(omega)
w = -10:0.01:10; // eixo de frequência (omega)
F = 2*cos(w);
subplot(2,1,2);
plot(w, F, 'b-');
title('Transformada de Fourier: F(\omega) = 2 cos(\omega)');
xlabel('\omega (rad/s)');
ylabel('F(\omega)');
xgrid();