Você está acessando nosso website pela primeira vez. Nosso site, objetivando permitir, particularmente, uma melhor interação com você, bem como para permitir funcionalidades para melhorar o funcionamento técnico das páginas, mensurar a audiência do website e oferecer produtos e serviços relevantes por meio de anúncios personalizados, coleta informações do seu dispositivo e da sua navegação por meio de cookies. Para saber mais sobre a coleta de dados/informações e cookies que coletamos, acesse a nossa Política de Privacidade.

Aceitar Não aceitar

Para ver o formulário de contatos você aceita nossa Política de Privacidade.

Aceitar Não aceitar

Convolução


1. Revisão da teoria:


- A convolução é uma operação matemática que toma dois sinais para gerar um terceiro sinal.


- É uma operação bastante importante em DSP, pois relaciona 3 sinais de interesse operação de um sistema linear: a entrada, a saída e a resposta a impulso.


- Existem duas formas de se ver a convolução: o algoritmo do lado da entrada e o algoritmo do lado da saída.


- O algoritmo do lado da entrada utiliza o teorema da superposição: o sinal de entrada é decomposto em vários sinais, que são aplicados individualmente no sistema. A saída é então calculada como sendo a soma de cada um destes sinais. Esta é uma abordagem bastante importante para entender a convolução e o teorema da superposição para sistemas lineares.


- O algoritmo do lado da saída é a forma como a operação de convolução é implementada em sistemas reais.


- Se o sinal de entrada tem N amostras e a resposta a impulso tem M amostras, então o sinal de saída terá (N+M-1) amostras.


- Se a resposta a impulso de um sistema linear tem M amostras, então as (M-1) amostras iniciais e as (M-1) amostras finais do sinal de saída não representam exatamente o sinal filtrado, pois nestas regiões a resposta a impulso não está totalmente imersa no sinal (lembre-se da figura do carrinho).

2. Experiências


1. Primeiramente vamos ver se realmente a convolução de um sinal de N pontos com outro de M pontos gera um sinal de N+M-1 pontos.

 

% Gerando um sinal de 3 pontos
x = [1 2 3]

% Gerando um sinal de 4 pontos
h = [3 1 2 4]

% Convoluindo os dois sinais
z = conv(x,h)


2. Agora vamos verificar o algoritmo do lado da entrada. Na verdade, esta é uma aplicação direta do teorema da superposição de sistemas lineares, que você viu na prática passada.

a) Decomponha o sinal x do exercício anterior em três sinais, cada um com apenas um impulso:

 

x1 = [1 0 0]
x2 = [0 2 0]
x3 = [0 0 3]


b) Faça a convolução de cada um destes sinais com o sinal h. Qual a semelhança entre y1, y2 e y3 com h?

 

y1 = conv(x1,h)
y2 = conv(x2,h)
y3 = conv(x3,h)


c) Faça ytotal = y1+y2+y3 e compare com y.

3. Agora vamos ao algoritmo do lado da saída. A idéia aqui é simplesmente validar a idéia de que a relação entre entrada e saída de um sistema linear é dada pela convolução do sinal de entrada com a resposta a impulso do mesmo. 

Inicialmente, vamos gerar a resposta a impulso h[n] do nosso filtro:

 

h = zeros(1,99);
for i = 0:98
h(i+1) = 0.31752 * sin(0.314159 * (i-49.00001)) / (i-49.00001);    
h(i+1) = h(i+1) * (0.54 - 0.46 * cos(0.0641114 * i));
end


Vamos ver mais adiante que este é o kernel de um filtro FIR passa-baixas.

O presente filtro foi projetado para deixar passas senóides que façam menos de 25 ciclos em 500 amostras e bloquear senóides com frequências mais altas. Os filtros FIR passa baixas têm como característica uma resposta a impulso que consiste de várias amostras positivas. Podem haver amostras negativas, mas a maioria é positiva. Plote esta resposta a impulso para ver como ela é. 

plot(h);


4. Se você fizer a convolução de h[n] com o sinal descrito abaixo, qual deveria ser a resposta? Porque? Teste para ver.  

x[n] = 1 para n = 0
x[n] = 0 caso contrário

5. Gere um sinal de teste x[n] um pouco mais complicado, que consiste da soma de duas senóides.

A primeira deve ter amplitude 1 e fazer 6 ciclos completos em 500 amostras. (baixa frequência)

A segunda deve ter amplitude 0.5 e fazer 44 ciclos completos em 500 amostras. (alta frequência)

Plote estes três sinais para ver como eles são

 

N=500;
k = 6;
for i=0:499
x1(i+1) = sin(2*pi*k*i/N);
end

k = 44;
for i=0:499
x2(i+1) = 0.5*sin(2*pi*k*i/N);
end

x = x1+x2;
plot(x1)
figure
plot(x2)
figure
plot(x)


6. Vamos agora filtrar o sinal criado no exercício anterior com o nosso filtro, e ver como ficou:

 

y = conv(x,h);
plot(y);


O filtro conseguiu bloquear o sinal de alta frequência enquanto manteve o sinal de baixa frequência intacto? Comente sobre sua eficácia.

7. Transforme o kernel do filtro para um filtro passa-altas alterando o sinal de todas as suas amostras e somando 1 à amostra central. Teste este filtro da mesma forma que fez no exercício 6. Comente os resultados.

 

hpa = -h;
hpa(50) = hpa(50)+1;
plot(hpa);

@ Entre em contato

Instituto Nacional de Telecomunicações – Inatel

Campus em Santa Rita do Sapucaí - MG - Brasil

Av. João de Camargo, 510 - Centro - 37540-000

+55 (35) 3471 9200

Política de Privacidade