EE372 - Comunica¸c˜
oes Digitais
Ad˜
ao Souza Jr
April 12, 2018
Abstract
Revis˜ao: sinal amostrado e quantizado. Espectro do sinal amostrado. Espectro do sinal com retentor de primeira ordem. Reconstru¸c˜ao do sinal amostrado.
Referˆencias: Referˆencia 1. Se¸c˜ao 6.1. a 6.4. Exerc´ıcios Matlab se¸c˜ao 6.9
1
Amostragem e o processo de convers˜
ao anal´
ogico
digital
1.1
O teorema da amostragem
Demonstra que o teorema da amostragem ´e valido para sinais limitados em banda.
Para a reconstru¸c˜ao ser poss´ıvel ´e necess´ario que a frequencia de amostragem seja maior que duas vezes a banda.
1.2
Reconstru¸
c˜
ao de sinal ideal
O sinal amostrado cont´em o sinal original como uma parte de seu espectro em banda base. Assoim ´e poss´ıvel recuperar o sinal original atrav´es de filtragem.
Assumindo um filtro ideal com largura Be ganho Ts deve gerar o sinal orig-inal. H(f ) = TsΠ( w 4πB) = TsΠ( f 2B) h(t) = 2BTssinc(2πBt)
, o que assumindo amosragem com Nyquist (2BTs= 1) isso fica
h(t) = sinc(2πBt)
Logo o sinal ´e reconstru´ıdo por uma sequencia de sincs atrasadas no tempo.
g(t) =X k g(kTs)h(t−kTs) = X k g(kTs)sinc[2πB(t−kTs)] = X k g(kTs)sinc(2πBt−kπ)
Essa ´e a formula de interpola¸c˜ao que gera o sinal reconstru´ıdo.
Assim a resposta ao impulso desse filtro ser´a uma fun¸c˜ao sinc que ´e n˜ao causal e ´e irrealiz´avel.
1.3
Reconstru¸
c˜
ao pr´
atica de sinal
Na implementa¸c˜ao pr´atica de reconstru¸c˜ao deve-se imaginar que o sinal ser´a mantido em um dado n´ıvel usando-se a reconstru¸c˜ao com algum tipo de trem de pulsos (no caso chamado p(t)). Nessa situa¸c˜aoser´a importante determinar qual o espectro resultante.
se
~
g(t) =X
n
g(nTs)p(t − nTs)
No dom´ınio frequencia a rela¸c˜ao entre o sinal reconstru´ıdo e o pulso de reconstru¸c˜ao fica sendo.
˜ G = P (f )1 Ts X n G(f − nfs)
Ou seja, multiplas r´eplicas do espectro do sinal original submetidas a um ”filtro” dado pela transformada ddo reconstrutor p(t).
Para se chegar a resposta correta ´e necess´ario um filtro equalizador (E(f)). Assim: G(f ) = E(f ) ˜G(f ) = E(f )P (f ) 1 Ts X n nG(f − nfs)
1.4
Quantiza¸
c˜
ao
No processo de quantiza¸c˜ao o valor cont´ınuo ´e encaixado em um poss´ıvel valor de um conjunto de intervalos. Se tivermos r bits de sa´ıda teremos um total de
K = 2r
valores de sa´ıda discretos (quantizados). Chamamos esse conjunto de valores de sa´ıda de CODEBOOK e o indicamos como {σ0, σ1, ..., σK−1}. Para K
val-ores de CODEBOOK definimos um conjunto de K-1 limiares de compara¸c˜ao: {I0, I1, ...Ik−2}
A distˆancia entre dois limiares de quantiza¸c˜ao ´e chamada passo de quan-tiza¸c˜ao e simbolizada por q.
1.5
Passo de Quantiza¸
c˜
ao e Arredondamento
1. Quantizador Mid Tread:
xq = sgn(x) · q · b
|x| q +
1 2c
Isso ´e o mesmo que dizer que os ´ındices dos s´ımbolos s˜ao dados por:
i = sgn(x) · b|x| q +
1 2c 2. Quantizador Mid Riser:
xq = q · b
x qc +
q 2
Isso ´e o mesmo que dizer que os ´ındices dos s´ımbolos s˜ao dados por: i = bx
Ex: DR = 24V, r = 8 bits, q = 94,11mV, saida ±12V . Se m=2,5V qual ser´a o ´ındice em que estar´a o c´odigo que representa esse valor (R: i=27).
1.6
Quantiza¸
c˜
ao como ru´ıdo aditivo
Se conhecemos a distribui¸c˜ao esperada de valores de nosso sinal cont´ınuo fx.
Ap´os a quantiza¸c˜ao a distribui¸c˜ao do sinal quantizado ´e discreta com deltas centrados em cada valor do CODEBOOK de sa´ıda. A pergunta que se faz ´e qual ´e a rela¸c˜ao entre essa distribui¸c˜ao de sa´ıda fxq e a fx da entrada?
´
E poss´ıvel derivar dois teoremas que v˜ao indicar quando podemos considerar o efeito da quantiza¸c˜ao de sa´ıda como adi¸c˜ao de ru´ıdo.
1. QTI: Se a fun¸c˜ao caracter´ıstica da vari´avel (Φx(u)) ´e limitada tal que:
Φx(u) = 0, |u| > πq, pode-se recuperar a fxa partir da fxq
2. QTI: Se a fun¸c˜ao caracter´ıstica da cari´avel Φx(u)) ´e limitada tal que:
Φx(u) = 0, |u| > 2 ˙qπ, pode-se recuperar a os momentos de x a partir da
fxq
Uma vez obedecidas as condi¸c˜oes pode-se considerar que o efeito da quan-tiza¸c˜ao corresponde a adi¸c˜ao de r´ıdo uniforme com probabilidade 1/q e no in-tervalo {−q2,q2}. A densidade de potˆencia desse ru´ıdo deve se somar ao especto com o valor de σ2
0= q2 12
1.7
Observa¸
c˜
oes sobre .M de amostragem e reconstru¸
c˜
ao
ideal
1. Amplitude de sa´ıda da FFT: Notem a necessidade de escalonar a fft de acordo com a frequencia de amostragem. Trabalhar sempre na escala cor-reta ´e fundamental ao processarmos o sinal. Fazemos isso com x (usando a frequencia implicita do sinal (uma vez que o sinal gerado ´e discreto) que, nesse caso, ´e N/T. Quando fazemos a transformada de xa, no entanto,
usamos Fa como frequencia de Nyquist quando normalizamos o eixo.
2. Subamostragem em MATLAB: Notem como fizemos a subamostragem simplemente selecionando dentro do vetor original um conjunto de indices que corresponderiam a percorrer esse mesmo vetor original de periodo Ta
em periodo Ta (ao inv´es de faze-lo de periodo T/N em T/N) isso ´e feito
nas linhas 58 a 65 do c´odigo. Intencionalmente n˜ao tomamos qualquer medida a fim de evitar aliasing
3. Escala de frequencias da FFT: observem como foi construida a escala de frequencia escf. A m´ınima frequencia positiva sendo 0 e a m´axima sendo um pouco abaixo de metade da frequencia de amostragem ( FN yquist ), no
lado negativo vai da menor frequencia negativa detectavel (−2 ·FN yquist
N )
at´e −FN yquist). Cada um dos semiplanos tem a metade do intervalo em
numero de pontos (linha 33)
4. Zero-pading na FFT: No espectro de saida reconstruido se limita xrde 1
a N na exibi¸c˜ao. Isso ocorre pois usamos uma potˆencia de dois no n´umero total de pontos da FFT. Quando fazemos isso completa-se os pontos que
faltam com zeros. O numero de pontos da FFT sendo maior que o total de pontos a sua transformada inversa ter´a um tamanho maior que o sinal original na sa´ıda tamb´em e os pontos adicionais da sa´ıda ser˜ao zerados e podem ser descartados (linha 128)
5. Circular convolution: Para se fazer a ”vers˜ao do filtro ideal” da recon-stru¸c˜ao do sinal amostrado se optou por fazer a transformada do sinal e apagar as componentes indesejadas multiplicando no dom´ınio frequencia. Esse m´etodo de processamento de sinal ´e muitas vezes chamado ”con-volu¸c˜ao circular” (Circular Convolution) e, de modo mais geral, tem como efeito colateral a gera¸c˜ao de alguns artefatos. Para fins desse exemplo o m´etodo ´e suficiente, e um aprofundamento do conte´udo foge do escopo dessa aula. Caso o leitor esteja interessado em ”filtragem em frequˆencia” de forma geral recomenda-se que busquem referˆencia mais aprofundadas (3).
1.8
Observa¸
c˜
oes sobre .M de reconstru¸
c˜
ao com ZOH (zero
order hold) e fun¸
c˜
ao de transferˆ
encia passa baixas
1. Amostragem como processo linear: Note que a reconstru¸c˜ao foi um pro-cesso totalmente linear onde primeiro as amostras foram convoluidas com um pulso quadrado p (reten¸c˜ao de ordem zero, linha 67) e depois no-vamente convoluidas com a fun¸c˜ao de transferencia do circuito RC h(t) (linha 75). Pergunta: Quais dever ser as fun¸c˜oes de transferˆencia P(f) e H(f) desses dois processos? Note que Xr2(f ) tem alguns res´ıduos do
aliasing original do sinal.
2. Latˆencia do retentor: Note que a convolu¸c˜ao num´erica pelo pulso para aproximar o retentor ´e um processo que gera uma latencia de sa´ıda (atraso inicial). Note que o atraso total ´e de Da onde esse ´e o valor da largura
total do pulso de reten¸c˜ao. Vocˆe consegue explicar isso matem´aticamente? 3. Aproxima¸c˜ao de H(f): Note que para implementar a fun¸c˜ao RC ape-nas convoluimos o sinal com uma vers˜ao discreta de sua resposta no tempo h(t). Quais seriam as limita¸c˜oes que essa aproxima¸c˜ao implica? (Dica: pensando tanto em amostragem quanto em resposta finita isso se assemelha a uma implementa¸c˜ao TDL (Time-Delay Line)
1.9
Exemplo simulado
Os exemplos dessa aula usam o codigo MATLAB disponivel (”Amostragem e Reconstrucao.m”). Nesse exemplo um trecho de um sinal de dois tons e subamostrado por um trem de impulsos discretos a fim de ilustrar o efeito da amostragem.
Nota-se o efeito de aliasing no espectro gerando multiplas representa¸c˜oes dos dois tons componentes do sinal em frequencia. A fim de se retornar ao sinal no dom´ıno tempo ´e necess´ario selecionar a banda relevante atrav´es de filtragem. Esse processo ´e ilustrado na figura abaixo.
Finalmente o resultado da reconstru¸c˜ao ´e demonstrado na figura 3 pode-se notar ha pouca diferen¸ca entre o sinal original e o reconstruido.
Figure 1: Sinal de dois tons amostrado.
Figure 3: Sinal de dois tons reconstruido comparado com o original.
Como contraste foi utilizado um reconstrutor n˜ao ideal (retentor de ordem zero) seguido por filtragem simples a partir de uma resposta ao impulso de circuito RC limitada e discretizada (linha 78 no codigo 2). O resultado, que pode ser visto na figura 4 apresenta um atraso de propaga¸c˜ao e alguma distor¸c˜ao residual.
1.10
Atividades de simula¸
c˜
ao 1
Leia atentamente os cap´ıtulos recomendados e fa¸ca as atividades de fixa¸c˜ao para a semana 1. A partir disso analise as simula¸c˜oes:
• Simula¸c˜ao 1: Amostragem e reconstru¸c˜ao e • Simula¸c˜ao 2: Reconstru¸c˜ao n˜ao ideal.
A partir desse referencial responda as seguintes quest˜oes:
1. A partir do entendimento da simula¸c˜ao 1 construa um c´odigo que aplique um ´unico tom com amplitude igual Ao e verifique a amplitude do tom depois da reconstru¸c˜ao ideal Ar. Fa¸ca com que o c´odigo tenha um la¸co em que a frequˆencia do tom varia de um valor muito baixo at´e a frequencia de Nyquist. Fa¸ca o gr´afico que mostra o m´odulo da resposta em frequˆencia (|Ao/Ar|) desse processo para todo esse intervalo de frequˆencias (ou seja
exiba os valores de |Ao/Ar| em fun¸c˜ao de f /fN yquist). [Obs: Como o que
importa ´e a rela¸c˜ao de ganho, utilize Ao unit´ario ou qualquer valor que achar mais conveniente]
Figure 4: Sinal reconstruido a patrir de reten¸c˜ao e filtragem de primeira ordem
Figure 5: Circuito para a atividade de simula¸c˜ao.
2. Na simula¸c˜ao dois a reconstru¸c˜ao ´e feita atrav´es de dois processos lineares, o retentor de ordem zero p(t) e o filtro simples h(t). Determine algebrica-mente qual deve ser a resposta em frequˆencia do processo total de recon-stru¸c˜ao HT(f ) que inclui essas duas etapas. Compare essa resposta te´orica
com a resposta obtida aplicando um tom e variando a frequˆencia, como fizemos na atividade 1. [Obs: Entregue o desenvolvimento completo da equa¸c˜ao e fa¸ca um gr´afico dos valores simulados superposto ao gr´afico da resposta em frequˆencia algebricamente calculada. Mostre a coincidˆencia e/ou explique discrepˆancias]
3. Imaginem que um sinal de senoidal de amplitude A ir´a passar por um canal com distor¸c˜ao seguida de adi¸c˜ao de ru´ıdo gaussiano com σ2= .2A2. Sabe-se que o modelo da distor¸c˜ao ´e dado por Hd(f ) e pode ser modelado
pelo circuito da figura 1. Sabendo que R = 18, L = 49µH, C = 4nF e Rload = 100Ω, fa¸ca uma simula¸c˜ao MATLAB mostrando a resposta em
frequˆencia desse canal. Confronte os dados de simula¸c˜ao com a resposta esperada.
4. Repita a simula¸c˜ao 3, dessa vez imaginando que u ru´ıdo gaussiano ´e primeiro somado ao sinal e depois se passa pela distor¸c˜ao Hd(f ). [Dica
para quest˜oes 3 e 4: Para a simula¸c˜ao, assuma que o circuito tem resposta finita no tempo e escola parˆametros adequados para simula¸c˜ao discreta e aproximada do mesmo]
1.11
Referencias para a tarefa
(1) Lathi, B.P.; Ding, Zhi. Modern Digital and Analog Communication Sys-tems, 4ed. Oxford University Press. 2009. (2) Notas de aula semana 1. (3) Openhein, A.V.; Schaeffer, R. W. Processamento em Tempo Discreto de Sinais. 3ed. Pearson, 2013. (em especial se¸c˜ao 8.7 sobre convolu¸c˜ao circular)
1.12
Codigos MATLAB
% CODIGO 1: Reconstrucao ideal---% Mostrando os limites da reconstrucao de sinal amostrado
% EE372
clear all; close all; clc
%1) Primeiro vamos criar uma linha de tempo com intervalo de 1 segundo e %muitos pontos. Como comentei n~ao ´e poss´ıvel mostrar tempo cont´ınuo mas %podemos simular isso criando uma onda discreta com muitos pontos e a %subamostrando. A subamostragem vai ser usada para aproximar o efeito da %amostragem em onda continua.
T = 1; N = 500;
t =linspace(0,T,N); % cria uma linha de tempo com T seg e N pontos % Note que linspace(0,T,N) ´e equivalente a t = 0:T/(N-1):N;
%2) Ent~ao vamos definir nossa onda "continua" no caso seria uma onda de %dois tons com frequencias fo=1 Hz e f1 =3%fo.
fo = 1; f1 = 3*fo;
x = sin(2*pi*fo*t) - sin (2*pi*f1*t);
%4) Podemo exibir essa onda no tempo e em frequencia. Para isso precisamos %fazer sua tranformada X(f). ´E importante tamb´em criarmos a escala de
%frequencias esc_f. A saida de uma fft de N pontos ´e sempre dada entre 0 e amais %alta frequencia que pode ser vista (metade da amostragem). Nossa onda
%"cont´ınua" na verdade tem pontos separados por T/N segundos. Logo sua %frequencia de amostragem implicita ´e N/T Hz e a m´axima frequencia vis´ıvel %em uma transformada dessa onda sera a metade disso. No caso usamos um %numero de pontos diferente para a FFT usa-se esse numero ao inves de N no %mesmo raciocinio
Lfft = 2^ceil(log2(N)+1); % Usamos um numero de pontos da FFT que seja potencia de dois FNy = N/(2*T);
% Faco a transformada
X = fft(x, Lfft)/(N/T); % a transformada X deve ser escalonada pela frequencia de amostragem abs_X = abs(X); % Modulo da transformada
% Imprimo o grafico figure;
subplot(2,1,1); plot(t, x);
ylabel(’x(t)’); xlabel(’t (segundos)’); title(’Dois tons no dominio tempo’); grid on;
subplot(2,1,2);
plot(fftshift(esc_f), fftshift(abs_X)); ylabel(’X(f)’); xlabel(’f (Hertz)’); title(’Dois tons no dom´ınio frequencia’); % Como fica pouco vis´ıvel dou um zoom’)
axis([-20*fo 20*fo 0 0.7]); % Limites de exibi¸c~ao da fft grid on;
% 5) Agora vou mostrar o efeito da amostragem. Para isso vou criar um x % amostrado com uma frequencia menor que a maxima implicita no x que ja % temos.
Fa = 20; Ta = 1/Fa; ta = 0:Ta:(T);
% Esse ´e o periodo de amostragem meu problema ´e determinar a quantos pontos % de t esse periodo corresponde para pegar as amostras da linha original.O % exemplo tem T segundos em N pontos logo T/N ´e o menor tempo possivel. % Dividindo Ta por esse periodo tenho o numero de pontos, que deve ser % arredondado.
idx_ta = round(ta./(T/N)); % indica as amostras
% Cria o sinal amostrado xa = zeros(1,N);
xa(idx_ta(2:end)) = x(idx_ta(2:end)); %elimina indice zero
% Faco a trasnformada Xa = fft(xa, Lfft)/Fa; abs_Xa = abs(Xa);
disp(’Aperte qualuqer tecla para amostrar’) pause
% Atualizo o grafico
subplot(2,1,1); hold on; stem(t, xa, ’r’); ylabel(’x(t), x_a(t)’); xlabel(’t (segundos)’); title(’Dois tons no dominio tempo’);
grid on;
plot(fftshift(esc_f), fftshift(abs_Xa), ’r:’); ylabel(’X(f), X_a(f)’); xlabel(’f (Hertz)’); title(’Dois tons no dom´ınio frequencia’);
axis([-3*Fa 3*Fa 0 0.7]); % Novos limites de exibicao da fft % Como fica pouco vis´ıvel dou um zoom’)
grid on;
% 6) Agora vou reconstruir o x origigal usando o efeito de um filtro ideal % em cima do xa. Para isso fa¸co o que se chama filtragem em frequencia. Ou % seja, crio uma fun¸c~ao H que ´e unitaria nas frequencias de interesse e % zero nas frequencias a suprimir e fa¸co o produto. Depois uso a
% transformada inversa.
Fmax = Fa/2; % Fa¸co um passa baixas que corta na frequencia de Nyquist H = abs(esc_f)< Fmax; % Passa baixas em frequencia
Xr = Xa.* H; % Saida do passa baixas em frequencia abs_Xr = abs(Xr);
xr = real(ifft(Xr, Lfft))*N; % Reconstroi o sinal no dominio tempo a partir das amostras
disp(’Aperte qualquer tecla para ver a reconstrucao’) pause;
figure;
subplot(2,1,1);
plot(fftshift(esc_f), fftshift(H), ’g’); hold on; plot(fftshift(esc_f), fftshift(abs_Xa));
title(’Filtro ideal de reconstrucao’);
ylabel(’H(f) (vd), X_a(f) (az)’); xlabel(’f (Hertz)’); grid on;
axis([-3*Fa 3*Fa 0 1.2])
subplot(2,1,2);
plot(fftshift(esc_f), fftshift(abs_Xr), ’r’); title(’Sinal recuperado em frequencia’); ylabel(’X_r(f)’); xlabel(’f (Hertz)’); grid on;
axis([-3*Fa 3*Fa 0 1.2])
disp(’Aperte qualquer tecla para o resultado final’) pause;
figure;
plot(t,x,’b:’, ’LineWidth’, 2); hold on; plot(t, xr(1:N), ’r’, ’Linewidth’, 2); title(’Sinal reconstruido’);
ylabel(’x_r(t), x(t)’); xlabel(’t (segund)’); legend(’Sinal original’, ’Sinal reconstruido’); grid on;
RC---% Mostrando os efeitos de reconstrucao com filtragem % EE372
clear all; close all; clc
% Mostramos o efeito de um reconstrutor ideal e como, mesmo nesse caso % haver´a uma distor¸c~ao no sinal reconstuido a medida em que nos
% aproximarmos da frequencia de mostragem. Agora a ideia ´e fazer o mesmo % com um filtro n~ao ideal.
%1) Criamos a linha como no exemplo ideal T = 1;
N = 500;
t =linspace(0,T,N);
%2) Definimos os tons fo = 1; f1 = 3*fo;
x = sin(2*pi*fo*t) - sin (2*pi*f1*t);
%3) Fazemos e exibimos a transformada com Lfft pontos
Lfft = 2^ceil(log2(N)+1); % numero de pontos da transformada FNy = N/(2*T);
esc_f = [linspace(0, FNy, Lfft/2) linspace(-FNy, -2*FNy/N, Lfft/2)]; %ordem de saida da FFT
X = fft(x, Lfft)/(N/T); abs_X = abs(X); % 4) Amostro Fa = 20; Ta = 1/Fa; ta = 0:Ta:(T); idx_ta = round(ta./(T/N)); xa = zeros(1,N); xa(idx_ta(2:end)) = x(idx_ta(2:end));
% Faco a transformada do sinal amostrado Xa = fft(xa, Lfft)/Fa;
abs_Xa = abs(Xa);
% 5) Faco os graficos figure;
subplot(2,1,1); hold on; stem(t, xa, ’r’); xlabel(’x(t), x_a(t)’); ylabel(’t (segundos)’); title(’Dois tons no dominio tempo’);
grid on;
subplot(2,1,2); hold on;
xlabel(’X(f), X_a(f)’); ylabel(’f (Hertz)’); title(’Dois tons no dom´ınio frequencia’); axis([-3*Fa 3*Fa 0 0.7]);
grid on;
% 6) Uma reconstru¸c~ao n~ao ideal do sinal pode ser feita usando um
% reconstrutorde ordem zero (ZOH) e um filtro simples. O filtro ser´a feito % com um circuito RC, para isso iremos convoluir a sa´ıda do reconstrutor % com a resposta no tempo de um circuito RC.
Fmax = Fa/2; % Fa¸co um passa baixas que corta na frequencia de Nyquist
% O reconstrutor de ordem zero segura o valor de cada amostra durante todo % o per´ıodo. Para fazer isso criamos um pulso com quadrado com a largura de % um intervalo de amostragem e o convoluimos com as amostras.
Da = round(Ta/(T/N)); p = ones(1,Da);
xzoh = conv(xa, p); % Cria a saida do reconstrutor de ordem zero
% Agora para aproximar uso um filtro bem ruim. Por exemplo um simples RC. % Sabemos que a resposta ao impulsode um circuito RC passa baixas ´e dada % por h(t) = exp(-t/Tau). Usamos ent~ao a abordagem do Time Delay Filter % (ver) e simplesmente a convolu¸c~ao num´erica com o respectivo filtro. Tau = 1/(2*Fmax); %uso a constante de tempo pelo dobro da frequencia maxima h = exp(-t./Tau)*Tau; %h(t) normalizado
xr2 = conv(xzoh, h);
figure; subplot(2,1,1); plot(t, xzoh(1:N)); hold on;
ylabel(’x_{ZOH}(t) [´az], x_a(t) [vm]’); xlabel(’t (segundos)’); title(’Sinal amostrado e reconstrutor de ordem zero’);
plot(t,xa, ’rd’); grid on;
subplot(2,1,2);
plot(t,x,’b:’, ’LineWidth’, 2); hold on; plot(t,xr2(1:N), ’r’, ’LineWidth’, 2);
ylabel(’x_{r_2}(t) [´az], x_a(t) [vm]’); xlabel(’t (segundos)’); title(’Sinal amostrado e reconstrutor final com ZOH + RC’);
grid on;
% Observa¸c~oes finais de fixa¸c~ao
% a) Note que a reconstru¸c~ao foi um processo totalmente linear onde
% primeiro as amostras foram convoluidas com um pulso quadrado p (reten¸c~ao de % ordem zero, linha 67) e depois novamente convoluidas com a fun¸c~ao de
% transferencia do circuito RC h (linha 75). Quais dever ser as fun¸c~oes de % transfer^encia P(f) e H(f) desses dois processos? Note que Xr2(f) tem
% alguns res´ıduos do aliasing original do sinal. %
% b) Note que a convolu¸c~ao num´erica pelo pulso para aproximar o retentor ´e um processo % que gera uma latencia de sa´ıda (atraso inicial). Note que o atraso total