Processamento Digital de Sinais - Filtragem Adaptativa - Exercícios e Simulações

37
EQULIZAÇÃO ADAPTATIVA – PDS – PROF. A NEWTON LICCIARDI JR. - PAGINA 1 -

description

Série de Exercícios sobre Equalização/Filtragem Adaptativa - utilizada em Processamento Digital de Sinais. Além dos exercícios, simulações e programas utilizados no matlab são divulgados, com a finalidade de apresentar a eficiência prática de algoritmos exercitados.

Transcript of Processamento Digital de Sinais - Filtragem Adaptativa - Exercícios e Simulações

Page 1: Processamento Digital de Sinais - Filtragem Adaptativa - Exercícios e Simulações

EQULIZAÇÃO ADAPTATIVA – PDS – PROF. A NEWTON LICCIARDI JR.

- PAGINA 1 -

Page 2: Processamento Digital de Sinais - Filtragem Adaptativa - Exercícios e Simulações

EQULIZAÇÃO ADAPTATIVA – PDS – PROF. A NEWTON LICCIARDI JR.

- PAGINA 2 -

Page 3: Processamento Digital de Sinais - Filtragem Adaptativa - Exercícios e Simulações

EQULIZAÇÃO ADAPTATIVA – PDS – PROF. A NEWTON LICCIARDI JR.

- PAGINA 3 -

Page 4: Processamento Digital de Sinais - Filtragem Adaptativa - Exercícios e Simulações

EQULIZAÇÃO ADAPTATIVA – PDS – PROF. A NEWTON LICCIARDI JR.

- PAGINA 4 -

Page 5: Processamento Digital de Sinais - Filtragem Adaptativa - Exercícios e Simulações

EQULIZAÇÃO ADAPTATIVA – PDS – PROF. A NEWTON LICCIARDI JR.

- PAGINA 5 -

Page 6: Processamento Digital de Sinais - Filtragem Adaptativa - Exercícios e Simulações

EQULIZAÇÃO ADAPTATIVA – PDS – PROF. A NEWTON LICCIARDI JR.

- PAGINA 6 -

Page 7: Processamento Digital de Sinais - Filtragem Adaptativa - Exercícios e Simulações

EQULIZAÇÃO ADAPTATIVA – PDS – PROF. A NEWTON LICCIARDI JR.

- PAGINA 7 -

Page 8: Processamento Digital de Sinais - Filtragem Adaptativa - Exercícios e Simulações

EQULIZAÇÃO ADAPTATIVA – PDS – PROF. A NEWTON LICCIARDI JR.

- PAGINA 8 -

Page 9: Processamento Digital de Sinais - Filtragem Adaptativa - Exercícios e Simulações

EQULIZAÇÃO ADAPTATIVA – PDS – PROF. A NEWTON LICCIARDI JR.

- PAGINA 9 -

Page 10: Processamento Digital de Sinais - Filtragem Adaptativa - Exercícios e Simulações

EQULIZAÇÃO ADAPTATIVA – PDS – PROF. A NEWTON LICCIARDI JR.

- PAGINA 10 -

Page 11: Processamento Digital de Sinais - Filtragem Adaptativa - Exercícios e Simulações

EQULIZAÇÃO ADAPTATIVA – PDS – PROF. A NEWTON LICCIARDI JR.

- PAGINA 11 -

Page 12: Processamento Digital de Sinais - Filtragem Adaptativa - Exercícios e Simulações

EQULIZAÇÃO ADAPTATIVA – PDS – PROF. A NEWTON LICCIARDI JR.

- PAGINA 12 -

Page 13: Processamento Digital de Sinais - Filtragem Adaptativa - Exercícios e Simulações

EQULIZAÇÃO ADAPTATIVA – PDS – PROF. A NEWTON LICCIARDI JR.

- PAGINA 13 -

Page 14: Processamento Digital de Sinais - Filtragem Adaptativa - Exercícios e Simulações

EQULIZAÇÃO ADAPTATIVA – PDS – PROF. A NEWTON LICCIARDI JR.

c. 2 a 7 bits de atraso

- PAGINA 14 -

Page 15: Processamento Digital de Sinais - Filtragem Adaptativa - Exercícios e Simulações

EQULIZAÇÃO ADAPTATIVA – PDS – PROF. A NEWTON LICCIARDI JR.

Parte Experimental - Simulações do Matlab

Programa do Item 5.1

% Equalizacao Adaptativa - Metodo LMS% % (Exercicio 51 Proposto Modificado - Correcao Sobre Erro Quadratico Medio)%% Elaborado por Antonio Newton Licciardi Junior

L=input('Digite o Valor de Iteracoes a partir de Zero '); %tamanhoP=input('Digite o Valor Medio Quadratico do Ruido ');HI=input('Digite o valor do Vetor Coluna inicial de H ');passo=input('Digite o valor do Passo u de Adaptacao ');%A Var. a seguir define a media de conjunto a ser realizada para o Calculo de% Erro Medio Quadratico - para observarmos a tendencia estatistica do Filtro% Calcularemos tbem o comportamento medio estatistico em N iteracoes de H1 e H2% atraves dos vetores H1M e H2M iteracao=200;erromedio=zeros(1,L+1);H1M=zeros(L+1,1);H2M=zeros(L+1,1);

n=0:1:L;n1=n+1;

for niteracao=1:iteracao

H=HI; %Calculo do Sinal Ruido Branco com Potencia P%Inicializa aleatoriamente o valor de RANDrand('state', sum(100*clock));pico=P^.5;pp=pico*2;%gera vetor s(n) com potencia de ruido desejadas=rand(1,L+1)*pp-pico;

if niteracao == 1 sg=s'; figure(1); stem(n,sg); %Grafico do Ruido na Figura 1 xlabel('n'); ylabel('s(n)'); saida=sprintf('Ruido, ErroMQ = %4.4f', P); title(saida);end

%Definicao do Sinal de Entrada do Filtro Adaptativox=5*sin(2*pi*n/10);

%Definicao do Sinal de Treinamento do Filtro Adaptativou=sin(2*pi*n/10+pi/6);d=u+s;

if niteracao == 1 xg=x'; figure(2);

- PAGINA 15 -

Page 16: Processamento Digital de Sinais - Filtragem Adaptativa - Exercícios e Simulações

EQULIZAÇÃO ADAPTATIVA – PDS – PROF. A NEWTON LICCIARDI JR.

stem(n,xg); %Grafico do Sinal x(n) na Figura 2 xlabel('n'); ylabel('x(n)'); saida=sprintf('Sinal de Entrada, u = %4.4f', passo); title(saida);

dg=d'; figure(3); stem(n,dg); %Grafico do Sinal d(n) na Figura 3 xlabel('n'); ylabel('d(n)'); saida=sprintf('Sinal de Treinamento, ErroMQ = %4.4f, u = %4.4f', P, passo); title(saida);end %Criando o Algoritmo do LMS %Utilizaremos o vetor inicial Hdfiltro=zeros(1,L+1);e=zeros(1,L+1);H1c=H(1);H2c=H(2);for i=1:L X=[x(i+1);x(i)]; dfiltro(i+1)=X'*H; e(i+1)=d(i+1)-dfiltro(i+1); %Correcao dos parametros H=H+passo*e(i+1)*X; H1c=[H1c;H(1)]; H2c=[H2c;H(2)];end

%calculo do Erro Medio Quadratico Acumulativamente e H1M e H2Merromedio=(e.*e)/iteracao + erromedio;H1M=H1c/iteracao+H1M;H2M=H2c/iteracao+H2M;

if niteracao == 1 dfiltrog=dfiltro'; figure(4); stem(n,dfiltrog); %Grafico do Sinal d.filtro(n) na Figura 4 xlabel('n'); ylabel('d.filtro(n)'); saida=sprintf('Sinal de Saida do Filtro, ErroMQ = %4.4f, u = %4.4f', P, passo); title(saida);

eg=e'; figure(5); stem(n,eg); %Grafico do Sinal de Erro(n) na Figura 5 xlabel('n'); ylabel('E(n)'); saida=sprintf('Sinal de Erro do Filtro, ErroMQ = %4.4f, u = %4.4f', P, passo); title(saida);

- PAGINA 16 -

Page 17: Processamento Digital de Sinais - Filtragem Adaptativa - Exercícios e Simulações

EQULIZAÇÃO ADAPTATIVA – PDS – PROF. A NEWTON LICCIARDI JR.

H2cg=H2c'; figure(6); plot(H1c,H2cg); %Grafico do Espaco H1xH2 Figura 6 xlabel('H1'); ylabel('H2'); saida=sprintf('Espaco H do Filtro, ErroMQ = %4.4f, u = %4.4f', P, passo); title(saida); end

%END do For para iteracaoend

erromediog=erromedio';figure(7);stem(n,erromediog);%Grafico do Sinal de Erro Medio Quadratico(n) na Figura 7xlabel('n');saida=sprintf('Media de Conjunto de %d amostras, ErroMQ = %4.4f, u = %4.4f' , iteracao, P, passo);ylabel('E.Medio.Quad(n)');title(saida);

H2cg=H2c';figure(8);plot(H1c,H2cg);%Grafico do Espaco H1xH2 - Media de 50 amostras - Figura 8xlabel('H1.medio');ylabel('H2.medio');saida=sprintf('Espaco H do Filtro - Media de %d amostras, ErroMQ = %4.4f, u = %4.4f' , iteracao, P, passo);title(saida);

- PAGINA 17 -

Page 18: Processamento Digital de Sinais - Filtragem Adaptativa - Exercícios e Simulações

EQULIZAÇÃO ADAPTATIVA – PDS – PROF. A NEWTON LICCIARDI JR.

5.1 a) U=0.03, E(S2)=0, 200 iterações

- PAGINA 18 -

Page 19: Processamento Digital de Sinais - Filtragem Adaptativa - Exercícios e Simulações
Page 20: Processamento Digital de Sinais - Filtragem Adaptativa - Exercícios e Simulações

5.1 b) U=0.001; 0.025; 0.04; 0.08, E(S2)=0, 200 iterações

Page 21: Processamento Digital de Sinais - Filtragem Adaptativa - Exercícios e Simulações

5.1 b) 0.025; 0.04; 0.08, E(S2)=0, 200 iterações

Page 22: Processamento Digital de Sinais - Filtragem Adaptativa - Exercícios e Simulações

5.1 b) 0.04; 0.08, E(S2)=0, 200 iterações

Page 23: Processamento Digital de Sinais - Filtragem Adaptativa - Exercícios e Simulações

5.1 b) 0.08, E(S2)=0, 200 iterações

Page 24: Processamento Digital de Sinais - Filtragem Adaptativa - Exercícios e Simulações

5 1 c) u= 0.03, E(S2)=0.01, 200 iterações

Page 25: Processamento Digital de Sinais - Filtragem Adaptativa - Exercícios e Simulações

Parte Experimental - Simulações do Matlab

Programa do Item 5.2

% Equalizacao Adaptativa - Metodo LMS% % (Exercicio 52 Proposto - Canal "Cosseno Levantado")%% Elaborado por Antonio Newton Licciardi Junior

L=input('Digite o Valor de Iteracoes a partir de Zero '); %tamanhoP=input('Digite o Valor Medio Quadratico do Ruido ');Hin=input('Digite o valor inicial para os Hi (1<=i<=11) ');passo=input('Digite o valor do Passo u de Adaptacao ');W=input('Digite o valor do Parametro W do Canal ');%A Var. a seguir define a media de conjunto a ser realizada para o Calculo de% Erro Medio Quadratico - para observarmos a tendencia estatistica do Filtro% Calcularemos tbem o comportamento medio estatistico em N iteracoes de H% atraves dos vetores HMiteracao=10;erromedio=zeros(1,L+1);% Variavel de atrso para definicao do sinal de d(n)atraso=3;%Inicializa Matriz de Parametros - Linha - N. Iteracao do Filtro, Coluna - Parametro RespectivoHI=zeros(11,L+2);HI(1:11,1)=ones(11,1)*Hin;BERM=0;HM=zeros(11,L+2);

n=0:1:L;n1=n+1;

for niteracao=1:iteracao

H=HI;BER=0; %Calculo do Sinal Ruido Branco com Potencia P%Inicializa aleatoriamente o valor de RANDrand('state', sum(100*clock));pico=P^.5;pp=pico*2;%gera vetor V(n) com potencia de ruido desejadav=rand(1,L+1)*pp-pico;

%Calculo do Sinal A(n) = +/- 1 que alimenta o Canal%Inicializa aleatoriamente o valor de RANDrand('state', sum(100*clock));%gera vetor s(n) com potencia de ruido desejadaa=sign(rand(1,L+1)-0.5);% Faz Correcao para A(N) se eventualmente A(i) == 0, pela funcao sinal (sign)for i=1:L+1 if a(i)==0 a(i)==1; endend

Page 26: Processamento Digital de Sinais - Filtragem Adaptativa - Exercícios e Simulações

%Calculo do Vetor X(n) Saida do Filtro com adicao do Ruido branco V(n) do Canal% O Vetor X(n) - e suas 10 amostras passadas, sao usadas no trabalho algoritmico do Filtro LMS%Calculo dos parametros do filtro h1, h2, h3h1=(1+cos(-2*pi/W))*.5;h2=1;h3=(1+cos(-2*pi/W))*.5;% Convolucao do Sinal A(n) com o Filtro e adicao do Ruidoaux=[0 0 0, a];x=v+h1*aux(3:L+3)+h2*aux(2:L+2)+h3*aux(1:L+1);

if niteracao == 1 figure(1); stem(n,v); %Grafico do Ruido na Figura 1 xlabel('n'); ylabel('v(n)'); saida=sprintf('Ruido v(n), ErroMQ = %4.4f', P); title(saida); figure(2); stem(n,a); %Grafico do Sinal A(n) de Entrada do Canal na Figura 2 xlabel('n'); ylabel('a(n)'); saida=sprintf('Sinal de Entrada do Canal a(n) , u = %4.4f', passo); title(saida);

figure(3); stem(n,x); %Grafico do Sinal X(n) de Saida do Canal Ruidoso na Figura 3 xlabel('n'); ylabel('x(n)'); saida=sprintf('Sinal de Saida do Canal Ruidoso x(n), u = %4.4f, Erro.MQ = %4.4f', passo, P); title(saida); end

%Definicao do Sinal de Treinamento do Filtro Adaptativod= [zeros(1,atraso), a(1:L+1-atraso)];

if niteracao == 1 figure(4); stem(n,d); %Grafico do Sinal d(n) na Figura 4 xlabel('n'); ylabel('d(n)'); saida=sprintf('Sinal de Treinamento d(n), ErroMQ = %4.4f, u = %4.4f, Atraso = %d', P, passo, atraso); title(saida);end

%Criando o Algoritmo do LMS %Utilizaremos o vetor inicial Hdfiltro=zeros(1,L+1);e=zeros(1,L+1);xaux=[zeros(1,10), x];X=zeros(11,L+1);for i=1:L+1

Page 27: Processamento Digital de Sinais - Filtragem Adaptativa - Exercícios e Simulações

for j=1:11 X(j,i)=xaux(i-1+12-j); endend

for i=1:L+1 dfiltro(i)=X(1:11,i)'*H(1:11,i); e(i)=d(i)-dfiltro(i); %Correcao dos parametros H(1:11,i+1)=H(1:11,i)+passo*e(i)*X(1:11,i);end

%calculo do Erro Medio Quadratico Acumulativamente e H1M e H2Merromedio=(e.*e)/iteracao + erromedio;HM=H/iteracao+HM;

%Implementacao do Decisordecisor=sign(dfiltro);% Para melhorar BER no caso dos atrasos%for i=1:L+1% if decisor(i)==0% decisor(i)=1;% end%end

BERA=d-decisor;for i=1:L+1 BER=abs(BERA(i))+BER;endBER=100*BER/(L+1);

if niteracao == 1 figure(5); stem(n,dfiltro); %Grafico do Sinal d.filtro(n) na Figura 5 xlabel('n'); ylabel('d.filtro(n)'); saida=sprintf('Sinal de Saida do Filtro, ErroMQ = %4.4f, u = %4.4f', P, passo); title(saida);

figure(6); stem(n,decisor); %Grafico do Sinal de Saida do Decisor na Figura 6 xlabel('n'); ylabel('decisor(n)'); said3=sprintf('Sinal de Saida do Decisor, ErroMQ = %4.4f, u = %4.4f, BER = %3.2f', P, passo,BER); title(said3);

figure(7); stem(n,e); %Grafico do Sinal de Erro(n) na Figura 7 xlabel('n'); ylabel('E(n)'); sai4=sprintf('Sinal de Erro do Filtro, ErroMQ = %4.4f, u = %4.4f, BER = %3.2f', P, passo,BER); title(sai4);

figure(8); hold on;

Page 28: Processamento Digital de Sinais - Filtragem Adaptativa - Exercícios e Simulações

cor='ymcrgb' for i=1:6 % Plotando os Graficos do Parametros H plot(n,H(i,1:L+1),cor(i)); %Grafico do Parametro Hi Figura 7+i end xlabel('n'); saida1=sprintf('H1 ao H6 (ymcrgb)'); ylabel(saida1); saida=sprintf('Parametros H1 a 6 do Filtro, ErroMQ = %4.4f, u = %4.4f',i, P, passo); title(saida); hold off; figure(9); hold on; for i=1:5 % Plotando os Graficos do Parametros H plot(n,H(i+6,1:L+1),cor(i)); %Grafico do Parametro Hi Figura 7+i end xlabel('n'); saida1=sprintf('H7 ao H11 (ymcrg)'); ylabel(saida1); saida=sprintf('Parametros H7 a 11 do Filtro, ErroMQ = %4.4f, u = %4.4f',i, P, passo); title(saida); hold off; endBERM=BER/iteracao+BERM;%END do For para iteracaoend

erromediog=erromedio';figure(10);stem(n,erromediog);%Grafico do Sinal de Erro Medio Quadratico(n) na Figura 10xlabel('n');saida=sprintf('Media de Conj.de %d amostras, ErroMQ = %4.4f, u = %4.4f, BER.Medio = %3.2f' , iteracao, P, passo, BERM);ylabel('E.Medio.Quad(n)');title(saida);

Page 29: Processamento Digital de Sinais - Filtragem Adaptativa - Exercícios e Simulações

5 2 a) u= 0.075, E(S2)=0.001, 300 iterações, W=2.9

Page 30: Processamento Digital de Sinais - Filtragem Adaptativa - Exercícios e Simulações
Page 31: Processamento Digital de Sinais - Filtragem Adaptativa - Exercícios e Simulações

5 2 b) u= 0.075, E(S2)=0.001, 300 iterações, W=3,1

Page 32: Processamento Digital de Sinais - Filtragem Adaptativa - Exercícios e Simulações
Page 33: Processamento Digital de Sinais - Filtragem Adaptativa - Exercícios e Simulações

5 2 b) u= 0.075, E(S2)=0.001, 300 iterações, W=3,5

Page 34: Processamento Digital de Sinais - Filtragem Adaptativa - Exercícios e Simulações
Page 35: Processamento Digital de Sinais - Filtragem Adaptativa - Exercícios e Simulações