Procesamiento digital de señales
Enviado por moshe macdonal • 7 de Agosto de 2015 • Práctica o problema • 450 Palabras (2 Páginas) • 222 Visitas
%PROGRAMA DE CONVOLUCIÓN[pic 1]
clear all;
xn = input ('Escribe los valores de la función x(n): ' ); %Entrada
xh = input ('Escribe los valores de la función h(n): ' ); %Respuesta impulso
k = input ('Escribe el valor de k: ' ); % Definir rango desde k=0 hasta un valor k deseado
escala3 = 0;
escala2 = 0;
escala1 = 0;
figure,stem (xn , 'b');
title ('Señal Entrada x(n)');
ylabel ('x(n)');
xlabel ('n');
axis ([1 10 -20 20] );
figure,stem (xh , 'r' );
title ('Señal Respuesta Impulso x(h)');
ylabel ('x(h)');
xlabel ('h');
axis ([1 10 -20 20])
figure,stem (y,'g' );
title ('Señal Convolcionada y(n)');
ylabel ('y(n)' );
xlabel ('n');
axis ([1 15 -50 200]);
%Estas instrucciones diseñan tres filtros digitales.
%Usados para un problema de separación de canales.
clear all;
fs = 10000 ; %Frecuencia de Nyquist
T = 1/fs ; %Tiempo de muestreo
fn = fs/2; %Frecuencia de Muestro "Total"
f1n = 100/fn; %Corte pasabajas normalizado
f2n = 500/fn ; %Corte pasabanda izquierdo normalizado;
f3n = 1000/fn ; %Corte pasabanda derecho normalizado
f4n = 2000/fn ; %Corte pasaaltas normalizado
[B1,A1] = butter (8,f1n) ;
[B2,A2] = butter (7,[f2n,f3n]);
[B3,A3] = butter (10,f4n,'high');
% Mas grande N = mayor es la curva de respuesta de frecuencia.
[H1,wT] = freqz(B1,A1,200);
[H2,wT] = freqz(B2,A2,200);
[H3,wT] = freqz(B3,A3,200);
hertz = wT/(2*pi*T);
subplot(2,1,1),...
plot(hertz,abs(H1),'-',hertz,abs(H2),'-',...
hertz, abs(H3),'-'),...
title ('Filtros para separa canales'),...
xlabel ('Hz'), ylabel ('Magnitud'), grid
...