Resolução do Exercício 1.7-7 e 1.7-12 do livro:

Lathi, B. P.. Sinais e Sistemas Lineares. 2 ed. Editora Bookman, 2007

Resolução computacional:

https://youtu.be/WkJ\_bmoAQoI

Código utilizado no vídeo:

Exercício 1.7-7

% 
% Classificação de Sistemas
 
% Exercício 1.7-7 - Classificar os sistemas em causais e não causais
# Letra a -> y(t) = x(t-2)
# Letra b -> y(t) = x(-t)
# Letra c -> y(t) = x(at), com a>1
# Letra d -> y(t) = x(at), com a<1
 
%
 
% Incializando o Octave
clc;
clear all;
close all;
 
% Para os gráficos
fontsize = 20;
fontsize2 = 18;
 
% Paramentros inicias
t1 = -10
t2 = 10
t = linspace(t1,t2,1000);
 
% Definindo o sinal de entrada (considerando a entrada uma função exponencial)
sinal_entrada_x = e.^(-0.5*t);
 
% Definindo o sinal de saída
 
# Letra a -> y(t) = x(t-2)
# Letra b -> y(t) = x(-t)
# Letra c -> y(t) = x(at), com a>1
# Letra d -> y(t) = x(at), com a<1
 
% Operações
deslocamento = 0
reflexao = 1
escala = 0.5
 
if reflexao == 1
ti = (((t1)/escala)*reflexao)-deslocamento
tf = (((t2)/escala)*reflexao)-deslocamento
tn1 = linspace(ti,tf,1000)
 
else
tf = (((t1)/escala)-deslocamento)*reflexao
ti = (((t2)/escala)-deslocamento)*reflexao
tn2= linspace(ti,tf,1000)
end
 
 
ta = linspace(ti,tf,1000);
for i = 1:length(ta)
  sinal_saida_y(i) = e.^(-0.5*(reflexao*escala*ta(i)+deslocamento));
end
 
# Plotando os resultados
figure
plot(t,sinal_entrada_x,'r') 
hold on
if reflexao ==1
  plot(tn1,sinal_saida_y)
else
  plot(tn2,sinal_saida_y)
end
set(gca, "linewidth", 1, "fontsize", fontsize2)
hold on
grid on
grid minor on
xlabel('t',"fontsize", fontsize)
legend(['x(t)'; 'y(t)'])

Exercício 1.7-12

%
% Classificação de Sistemas
 
% Exercício 1.7-12 - Classificar o sistema abaixo quanto a linearidade, 
% invariancia no tempo, causalidade e memória
 
% y(t) = x(t)  se x(t) > 0
% y(t) = 0     se x(t) <= 0
 
%
 
 
# not a function file:
1;
% Inicializando o Octave
clc;
clear all;
close all;
fontsize = 20;
fontsize2 = 18;
 
% Definindo o sinal de entrada 
ti = -5
tf = 10
t1 = linspace(ti,0,1000);
t2 = linspace(0,tf,1000);
t = [t1(1:end-1), t2]; #exclui o t=0 de t1
sinal_entrada_x = [ zeros(1, length(t1(1:end-1))), cos(2*pi*1/2.5*t2)]; # sinal causal
 
##figure
##plot(t, sinal_entrada_x)
##grid on
##xlabel("t")
##ylabel("x")
##axis([ti tf -1 1])
 
% Definindo o sinal de saída
function y = sistema(x)
  y = [];
  for i = 1:length(x)    
    if x(i) > 0
      y = [y, x(i)];
    else
      y = [y, 0];
    end
    
  end  
endfunction
 
Y = sistema(sinal_entrada_x);
 
 
% Linearidade
% Teste linearidade (basta uma inverdade para ser não linear)
 
x1 = -0.5*ones(1, length(sinal_entrada_x));
y1 = sistema(x1,t);
 
x2 = sinal_entrada_x;
y2 = sistema(x2,t);
 
% Propriedade superposicao: aditividade + homogeinidade
k1 = 2;
k2 = 3;
x3 = k1*x1 + k2*x2;
y3 = sistema(x3,t);
 
y3_teste = k1*y1 + k2*y2;
 
 
% Plot resultado da
% Causalidade
figure
plot(t,sinal_entrada_x,'r') 
title("Teste da causalidade")
hold on
plot(t,Y,'--m') 
set(gca, "linewidth", 1, "fontsize", fontsize2)
hold on
grid on
grid minor on
axis([-10 10 -2 2])
xlabel('t',"fontsize", fontsize)
legend(['Sinal Entrada'; 'Saída do Sistema'])
 
%%
function signal_desloc = desloc(signal, ndesloc)
  
  if ndesloc > 0
    signal_desloc = [signal(ndesloc+1:length(signal)), zeros(1, ndesloc)];
    
  else
    signal_desloc = [zeros(1, -ndesloc) , signal(1:length(signal)+ndesloc)];
    
    
  endif 
 
endfunction

Veja a resolução teórica aqui.