https://www.youtube.com/watch?v=8VIXh3r71bY Veja a resolução teórica dos exercícios aqui. Códigos do Octave utilizados no vídeo Função deslocamento: ################################################################################ # Função para deslocar no tempo discreto de ndesloc unidades um sinal qualquer # obs.: preenche de zeros quando não tiver informação do sinal # autor: Elias J. # data: 25/03/2019 ################################################################################ function signal_desloc = desloc(signal, ndesloc) if ndesloc > 0 signal_desloc = [signal(ndesloc+1:length(signal)), zeros(1, ndesloc)]; # A função retorna um sinal deslocado para a esquerda else signal_desloc = [zeros(1, -ndesloc) , signal(1:length(signal)+ndesloc)]; # A função retorna um sinal deslocado para a direita endif endfunction Exemplos resolvidos 1.7-2(a) ################################################################################ # Variância e Invariância no Tempo # # autor: Elias J. # data: 07/05/2020 ################################################################################ % clc; clear all; close all; # Para os gráficos fontsize = 20; fontsize2 = 18; % step = 0.01 % passo t = -10:step:10; % vetor tempo T = 2 % atraso de teste n_desloc = int32(T/step) % amostras que o atraso representa -> 200 amostras ##% % Sinal de entrada exponencial: e.^(-0,5*t) , com t >= 0 sinal_entrada_x = e.^(-0.5*t(t>=0)); x = [ zeros(1,length(t(t<0))) , sinal_entrada_x ]; tamanho = length(t(t<0)) ##% concatenar vetor cujo valores sao resultados da função exponencial com vetor ##% de zeros, que comeca em 1 e vai até o comprimento do vetor t, considerando ##% somente os valores de t menores que 0 ## ##% % Letra a -> y(t) = x(t-2) y_ndesloc_negativo = desloc(x,-int32(1/step)); y_ndesloc_positivo = desloc(x,int32(1/step)); % figure subplot(1,3,1) plot(t,x,'b') set(gca, "linewidth", 1, "fontsize", fontsize2) hold on grid on grid minor on axis([-10 10 -2 2]) title('Entrada x') xlabel('t',"fontsize", fontsize) ylabel('x(t)',"fontsize", fontsize) subplot(1,3,2) plot(t,y_ndesloc_negativo,'g') set(gca, "linewidth", 1, "fontsize", fontsize2) hold on grid on grid minor on axis([-10 10 -2 2]) title('y com ndesloc negativo') xlabel('t',"fontsize", fontsize) ylabel('y(t)',"fontsize", fontsize) subplot(1,3,3) plot(t,y_ndesloc_positivo,'r') set(gca, "linewidth", 1, "fontsize", fontsize2) hold on grid on grid minor on axis([-10 10 -2 2]) title('y com ndesloc positivo') xlabel('t',"fontsize", fontsize) ylabel('y(t)',"fontsize", fontsize) ##% ### 1º: Aplicando atraso na saída -> Saida atrasada y(t-T) y = desloc(x,-int32(1/step)); yatrasado = desloc(y,-n_desloc);%Saida atrasada y(t-T) # Plotando a entrada x, a saida y e a saida atrasada y(t-T) figure subplot(1,3,1) plot(t,x,'b') set(gca, "linewidth", 1, "fontsize", fontsize2) hold on grid on grid minor on axis([-10 10 -2 2]) title('Entrada x(t)') xlabel('t',"fontsize", fontsize) ylabel('x(t)',"fontsize", fontsize) subplot(1,3,2) plot(t,y,'g') set(gca, "linewidth", 1, "fontsize", fontsize2) hold on grid on grid minor on axis([-10 10 -2 2]) title('Saída y(t)') xlabel('t',"fontsize", fontsize) ylabel('y(t)',"fontsize", fontsize) subplot(1,3,3) plot(t,yatrasado,'r') set(gca, "linewidth", 1, "fontsize", fontsize2) hold on grid on grid minor on axis([-10 10 -2 2]) title('Saída atrasada y(t-T)') xlabel('t',"fontsize", fontsize) ylabel('y(t-T)',"fontsize", fontsize) # 2º: Acrescentando atraso na entrada -> Entrada atrasada x(t-T) xatrasado = desloc(x,-n_desloc); % n_desloc = 200 ### Saida y letra a y2 = desloc(xatrasado,-int32(1/step)); % ndesloc = 100 # Plotando a entrada x, a entrada atrasada x(t-T) e a saida y2 figure subplot(1,3,1) plot(t,x,'b') set(gca, "linewidth", 1, "fontsize", fontsize2) hold on grid on grid minor on axis([-10 10 -2 2]) title('Entrada x(t)') xlabel('t',"fontsize", fontsize) ylabel('x(t)',"fontsize", fontsize) subplot(1,3,2) plot(t,xatrasado,'b') set(gca, "linewidth", 1, "fontsize", fontsize2) hold on grid on grid minor on axis([-10 10 -2 2]) title('Entrada atrasada x(t-T)') xlabel('t',"fontsize", fontsize) ylabel('x(t-T)',"fontsize", fontsize) subplot(1,3,3) plot(t,y2,'m') set(gca, "linewidth", 1, "fontsize", fontsize2) hold on grid on grid minor on axis([-10 10 -2 2]) title('Saída obtida após aplicar x(t-T) ao sistema') xlabel('t',"fontsize", fontsize) ylabel('y_a(t)',"fontsize", fontsize) % ====== Comparação dos dois resultados e classificação do sistema ======= % ======================= Inicializando o Octave ========================= % ======================= Parâmetros iniciais ============================ % ======================= Definindo a entrada x ========================== % ======================= Definindo a saída y ============================ % =================== Plotando a entrada x e a saida y =================== % ============= Procedimentos para classificação do sistema ============ % ====== Comparação dos dois resultados e classificação do sistema ======= % ======================= Inicializando o Octave ========================= % ======================= Parâmetros iniciais ============================ % ======================= Definindo a entrada x ========================== % ======================= Definindo a saída y ============================ % =================== Plotando a entrada x e a saida y =================== % ============= Procedimentos para classificação do sistema ============== % ====== Comparação dos dois resultados e classificação do sistema ======= %%% figure plot(t,yatrasado,'r') %obtido aplicando atraso na saida hold on plot(t,y2,'--m') %obtido aplicando a entrada atrasada no sistema set(gca, "linewidth", 1, "fontsize", fontsize2) hold on grid on grid minor on axis([-10 10 -2 3]) title('Comparação dos resultados') xlabel('t',"fontsize", fontsize) legend(['y(t-T)'; 'y_a(t)']) printf('\nClassificação do sistema:') if (yatrasado==y2) printf('\nO sistema é invariante no tempo') else printf('\nO sistema é variante no tempo') end Obs.: Para utilizar os códigos no MATLAB é necessário compatibilizar alguns comandos. Por exemplo, em MATLAB o comentário é %.