Transformações de Sinais
Análise de Sistemas Lineares, Revisão Sobre Transformações de Sinais.
- Amplificando e atenunado um sinal com valores positivos para K:
- Espelhando, Amplificando e atenunado um sinal com valores negativos para K:
- Deslocando o sinal no eixo Y
- Transformações no Argumento de $x(t) \rightarrow x(\alpha t + \beta)$
Podemos transformar um sinal de direfentes maneiras, para um sinal x(t) podemos variar sua amplitude quando multiplicamos por uma constante $K$, desde que essa constante seja positiva e maior que 1, temos as seguintes transformações.
$$x(t)\cdot u(t)$$
Amplificando o sinal:
$$y(t) = K\cdot x(t)\cdot u(t) \:\: k>1$$
Atenuando o sinal:
$$y(t) = K\cdot x(t)\cdot u(t) \:\: 0<k<1$$
Caso o sinal seja multiplicado por um valor negativo, seus valores serão espelhados no eixo X
$$x(t)\cdot u(t)$$
Amplificando e espelhando o sinal:
$$y(t) = K\cdot x(t)\cdot u(t) \:\: k>1$$
Atenuando e espenhando o sinal:
$$y(t) = K\cdot x(t)\cdot u(t) \:\: 0<k<1$$
import numpy as np
import matplotlib.pyplot as plt
plt.style.use('seaborn')
%matplotlib inline
t = np.linspace(-3, 5, 100)
# Degrau unitário
u = []
for i in t:
if i <= 0:
u.append(0)
else:
u.append(1)
u = np.array(u)
# Sinal Original
y = (5-t)
def transformacao_sinal(y, u, t, k = [1, 1, 1]):
yu = y*u
fig, (ax1, ax2, ax3) = plt.subplots(1, 3, figsize=(20, 6))
plt.subplots_adjust(top=0.85)
plt.suptitle("Aplicando Transformações no sinal $x(t) = 5-t$",
fontweight="medium", fontsize = 14)
ax1.plot(t, k[0]*yu, label="Sinal $x(t) = (5-t)\cdot u(t)$", lw=3)
ax1.plot(t, y,"--", label="Sinal $x(t) = (5-t)$", color="black", lw=1.5)
ax1.plot(t, u, "*", label="Sinal $Degrau \: u(t)$", lw=1.2)
ax1.legend()
ax1.axhline(0, color="black", lw=1.2)
ax1.axvline(0, color="black", lw=1.2)
if k[1] > 0:
ax1.set_yticks(range(0, 9))
else:
ax1.set_yticks(range(-9, 9))
ax1.set_title(f"Função $x(t)=(5-t)$ - Sinal Original",
fontweight="medium", fontsize = 14)
ax1.set_xlabel("Tempo $(t)$", color="black", fontweight="medium",
fontsize = 12)
ax1.set_ylabel("Amplitude", color="black", fontweight="medium",
fontsize = 12)
# Amplificando o sinal, Multiplicando o sinal por um valor mair que 1.
y1 = y; y1u = k[1]*y1*u
ax2.plot(t, y1u, label="Sinal $x(t) = 1,5\cdot (5-t)\cdot u(t)$", lw=3)
ax2.plot(t, y1,"--", color="black", label="Sinal $x(t) = 1,5\cdot (5-t)$",
lw=1.5)
ax2.plot(t, u, "*", label="Sinal $Degrau \: u(t)$", lw=1.2)
ax2.legend()
ax2.axhline(0, color="black", lw=1.2)
ax2.axvline(0, color="black", lw=1.2)
ax2.set_xticks(range(-3, 6))
if k[0] > 0:
ax2.set_yticks(range(0, 9))
else:
ax2.set_yticks(range(-9, 9))
ax2.set_title(f"Função $x(t)=1,5\cdot(5-t)$ - Sinal Amplificado por 1,5",
fontweight="medium", fontsize = 14)
ax2.set_xlabel("Tempo $(t)$", color="black", fontweight="medium",
fontsize = 12)
ax2.set_ylabel("Amplitude", color="black", fontweight="medium",
fontsize = 12)
# atenuando o sinal, Multiplicando o sinal por um valor menor que 1.
y2 = y; y2u = k[2]*y2*u
ax3.plot(t, y2u, label="Sinal $x(t) = 0,5\cdot (5-t)\cdot u(t)$", lw=3)
ax3.plot(t, y2,"--", color="black", label="Sinal $x(t) = 0,5\cdot (5-t)$",
lw=1.5)
ax3.plot(t, u, "*", label="Sinal $Degrau \: u(t)$", lw=1.2)
ax3.legend()
ax3.axhline(0, color="black", lw=1.2)
ax3.axvline(0, color="black", lw=1.2)
if k[0] > 0:
ax3.set_yticks(range(0, 9))
else:
ax3.set_yticks(range(-9, 9))
ax3.set_title(f"Função $x(t)=0,5\cdot(5-t)$ - Sinal Atenuado por 0,5",
fontweight="medium", fontsize = 14)
ax3.set_xlabel("Tempo $(t)$", color="black", fontweight="medium", fontsize = 12)
ax3.set_ylabel("Amplitude", color="black", fontweight="medium", fontsize = 12)
plt.show()
transformacao_sinal(y, u, t, k=[1, 1.5, 0.5])
Espelhando, Amplificando e atenunado um sinal com valores negativos para K:
-
Sinal Original: $$x(t)=-(5-t)\cdot u(t)$$
-
Sinal Amplificado e Espelhado no eixo X:
Multiplicando o sinal por um valor de k=-1,5 $$x(t)= -1,5\cdot (5-t)\cdot u(t)$$
- Sinal Atenuado e Espelhado no eixo X:
Multiplicando o sinal por um valor de k=-0,5 $$x(t) = -0,5 \cdot (5-t)\cdot u(t)$$
transformacao_sinal(y, u, t, k=[-1, -1.5, -0.5])
Deslocando o sinal no eixo Y
Se somar uma constante ao sinal, caso o valor for positivo o sinal é deslocando no eixo Y positivamente, do contrário o sinal será deslocado na direção negativa do eixo Y:
-
Sinal Original: $$x(t)=-(5-t)\cdot u(t)$$
-
Sinal Deslocado positivamente no eixo Y:
Somando um valor positivo ao sinal x(t). $$x(t)= (5-t) + 2\cdot u(t)$$
- Sinal Deslocado negativamente no eixo Y:
Somando um valor negativo ao sinal x(t). $$x(t) = (5-t) + (-2)\cdot u(t)$$
def transformacao_sinal2(y, u, t):
yu = y*u
fig, (ax1, ax2, ax3) = plt.subplots(1, 3, figsize=(20, 6))
plt.subplots_adjust(top=0.85)
plt.suptitle("Aplicando Transformações no sinal $x(t) = 5-t$",
fontweight="medium", fontsize = 14)
ax1.plot(t, yu, label="Sinal $x(t) = (5-t)\cdot u(t)$", lw=3)
ax1.plot(t, y,"--", label="Sinal $x(t) = (5-t)$", color="black", lw=1.5)
ax1.plot(t, u, "-.", color="black", label="Sinal $Degrau \: u(t)$", lw=1.2)
ax1.legend()
ax1.axhline(0, color="black", lw=1.2)
ax1.axvline(0, color="black", lw=1.2)
ax1.set_yticks(range(-9, 9))
ax1.set_title(f"$x(t)=(5-t)$ - Sinal Original", fontweight="medium", fontsize = 14)
ax1.set_xlabel("Tempo $(t)$", color="black", fontweight="medium", fontsize = 12)
ax1.set_ylabel("Amplitude", color="black", fontweight="medium", fontsize = 12)
# Amplificando o sinal, Multiplicando o sinal por um valor mair que 1.
y1u = y * u + 2
ax2.plot(t, y1u, label="Sinal $x(t) = (5-t) + 2\cdot u(t)$", lw=3)
ax2.plot(t, y,"--", color="black", label="Sinal $x(t) = (5-t)$", lw=1.5)
ax2.plot(t, u, "-.", color="black", label="Sinal $Degrau \: u(t)$", lw=1.2)
ax2.legend()
ax2.axhline(0, color="black", lw=1.2)
ax2.axvline(0, color="black", lw=1.2)
ax2.set_xticks(range(-3, 6))
ax2.set_yticks(range(-9, 9))
ax2.set_title(f"$x(t)=(5-t) + 2$ - Deslocamento Positivo em Y",
fontweight="medium", fontsize = 14)
ax2.set_xlabel("Tempo $(t)$", color="black", fontweight="medium", fontsize = 12)
ax2.set_ylabel("Amplitude", color="black", fontweight="medium", fontsize = 12)
# atenuando o sinal, Multiplicando o sinal por um valor menor que 1.
y2u = y*u-2
ax3.plot(t, y2u, label="Sinal $x(t) = (5-t) - 2\cdot u(t)$", lw=3)
ax3.plot(t, y,"--", color="black", label="Sinal $x(t) = (5-t)$", lw=1.5)
ax3.plot(t, u, "-.", color="black", label="Sinal $Degrau \: u(t)$", lw=1.2)
ax3.legend()
ax3.axhline(0, color="black", lw=1.2)
ax3.axvline(0, color="black", lw=1.2)
ax3.set_yticks(range(-9, 9))
ax3.set_title(f"$x(t )= (5-t) - 2$ - Deslocamento Negativo em Y",
fontweight="medium", fontsize = 14)
ax3.set_xlabel("Tempo $(t)$", color="black", fontweight="medium", fontsize = 12)
ax3.set_ylabel("Amplitude", color="black", fontweight="medium", fontsize = 12)
plt.show()
transformacao_sinal2(y, u, t)
Transformações no Argumento de $x(t) \rightarrow x(\alpha t + \beta)$
Quando a transformação é no argumento da função x(t) o sinal sofre mudanças no eixo do tempo. dependendo dos valores de $\alpha $ e de $\beta$, o sinal sofrerá diferentes transformações:
- Transformações no Argumento: $$x(\alpha t + \beta)$$
Aplicando Transformações no Argumento:
01 - Deslocamento no Tempo
Para que um sinal seja deslocado no tempo, sem sofrer mudanças na frequência, deve-se aplicar os seguintes valores para $\alpha$ e $\beta$:
$$\alpha = 1 \:\:\:\: \beta \neq 0$$
$$x(t) = \begin{cases} 0 & \text{$ t \lt 0 $}\\ 1 & \text{0 < t $\le 1$}\\ 2 - t & \text{$1 \lt t \lt 2$}\\ 0 & \text{$ t \lt 2 $}\\ \end{cases}$$Gráfico da Função x(t):
t0 = np.linspace(-1, 0, 10)
t1 = np.linspace(0, 1, 10)
t2 = np.linspace(1, 2, 10)
t3 = np.linspace(2, 3, 10)
x0 = np.zeros_like(t0)
x1 = np.ones_like(t1)
x2 = 2 - t2
x3 = np.zeros_like(t3)
tt = np.concatenate((t0, t1, t2, t3), axis=None)
xt = np.concatenate((x0, x1, x2, x3), axis=None)
fig1, ax = plt.subplots(1, figsize=(10, 5))
ax.plot(tt, xt, color="blue", lw=2)
ax.axhline(0, color="black", lw=1.2)
ax.axvline(0, color="black", lw=1.2)
ax.set_yticks(range(-1, 3))
ax.set_title(f"$x(t)$ - Sinal Original", fontweight="medium", fontsize = 14)
ax.set_xlabel("Tempo $(t)$", color="black", fontweight="medium", fontsize = 12)
ax.set_ylabel("Amplitude", color="black", fontweight="medium", fontsize = 12)
plt.show()
Atrazando o sinal x(t)
Para atrazar o sinal x(t), é preciso subtrair do argumento um valor, assim temos que $\beta$ tem que ser negativo, como mostra o exemplo abaixo:
$$x(\alpha t + \beta) \:\:\: \rightarrow \beta \lt 0 \:\:\: \text{atraso}$$
Gráfico da Função x(t):
$$\alpha = 1 \:\:\:\: \beta = \text{-0,5}$$
$$x(\alpha t -0,5) = \begin{cases} 0 & \text{$ t \lt 0,5 $}\\ 1 & \text{0,5 < t $\le 1,5$}\\ 2 - t & \text{$1,5 \lt t \lt 2,5$}\\ 0 & \text{$ t \lt 2,5 $}\\ \end{cases}$$t01 = np.linspace(-0.5, 0.5, 10)
t11 = np.linspace(0.5, 1.5, 10)
t21 = np.linspace(1.5, 2.5, 10)
t31 = np.linspace(2.5, 3.5, 10)
x01 = np.zeros_like(t01)
x11 = np.ones_like(t11)
x21 = 2.5 - t21
x31 = np.zeros_like(t31)
tt2 = np.concatenate((t01, t11, t21, t31), axis=None)
xt2 = np.concatenate((x01, x11, x21, x31), axis=None)
fig2, ax2 = plt.subplots(1, figsize=(10, 5))
ax2.plot(tt, xt, "-.", color="blue", lw=2)
ax2.plot(tt2, xt2, color="black", lw=2)
ax2.axhline(0, color="black", lw=1.2)
ax2.axvline(0, color="black", lw=1.2)
ax2.set_yticks(range(-1, 3))
ax2.set_title(f"$x(t)$ - Sinal Original", fontweight="medium", fontsize = 14)
ax2.set_xlabel("Tempo $(t)$", color="black", fontweight="medium", fontsize = 12)
ax2.set_ylabel("Amplitude", color="black", fontweight="medium", fontsize = 12)
plt.show()
Adiantando o sinal x(t)
Para adiantar o sinal x(t), é preciso somar no argumento um valor, assim temos que $\beta$ tem que ser positivo, como mostra o exemplo abaixo:
$$x(\alpha t + \beta) \:\:\: \rightarrow \beta > 0 \:\:\: \text{adiantado}$$
Gráfico da Função x(t):
$$\alpha = 1 \:\:\:\: \beta = \text{0,5}$$
$$x(\alpha t + 0,5) = \begin{cases} 0 & \text{$ t \lt -0,5 $}\\ 1 & \text{-0,5 < t $\le 0,5$}\\ 2 - t & \text{$0,5 \lt t \lt 1,5$}\\ 0 & \text{$ t \lt 1,5 $}\\ \end{cases}$$t02 = np.linspace(-1, -0.5, 10)
t12 = np.linspace(-0.5, 0.5, 10)
t22 = np.linspace(0.5, 1.5, 10)
t32 = np.linspace(1.5, 2.5, 10)
x02 = np.zeros_like(t02)
x12 = np.ones_like(t12)
x22 = 1.5 - t22
x32 = np.zeros_like(t32)
tt2 = np.concatenate((t02, t12, t22, t32), axis=None)
xt2 = np.concatenate((x02, x12, x22, x32), axis=None)
fig2, ax2 = plt.subplots(1, figsize=(10, 5))
ax2.plot(tt, xt, "-.", color="blue", lw=2)
ax2.plot(tt2, xt2, color="black", lw=2)
ax2.axhline(0, color="black", lw=1.2)
ax2.axvline(0, color="black", lw=1.2)
ax2.set_yticks(range(-1, 3))
ax2.set_title(f"$x(t)$ - Sinal Original", fontweight="medium", fontsize = 14)
ax2.set_xlabel("Tempo $(t)$", color="black", fontweight="medium", fontsize = 12)
ax2.set_ylabel("Amplitude", color="black", fontweight="medium", fontsize = 12)
plt.show()