En MATLAB, las funciones de filtro se utilizan para encontrar soluciones a una ecuación en diferencias dada una entrada y una ecuación en diferencias. La ecuación en diferencias se da a continuación:
Implementar ecuaciones en diferencias
Comience con una ecuación simple:
filtro(,1,)
Implementar y[k]=x [ k]+2*x[k-1]
y[1]=x[1]+2*0=1% (0 se usa para todos los estados antes de x[1]) p >
y[1]=x[1]=x[1]+2*0=1% (0 se usa para el estado anterior a x[1])
y[2] =x [2]+2*x[1]=2+2*1=4
a. El siguiente programa se utiliza para implementar la convolución de h y x. Se utilizan la función de filtro y la función conv, y los resultados de ambas funciones son los mismos.
h = [3 2 1 -2 1 0 -4 0 3]; % de respuesta al impulso
x = [1 -2 3 -4 3 2 1];
y = conv(h,x);
n = 0:14;
subtrama(2,1,1);
tallo(2,1,1);
n = 0:14;
subíndice(2,1,1); p>
stem(n,y);
xlabel('Índice de tiempo n'); ylabel('Amplitud');
title('Salida Obtenido por Convolución'); grid
x1 = [x cero (1,8)]
y1 = filter(h,1,x1); p>subplot(2,1,2);
stem(n,y1);
xlabel('Índice de tiempo n'); ylabel('Amplitud'); p>
p>
title('Salida generada por filtrado'); grid;
Para lograr la respuesta al impulso y la respuesta al paso de las siguientes ecuaciones, se pueden utilizar tres métodos respectivamente.
y[n]+0.75y[n-1]+0.125y[n-2]=x[n]-x[n-1].
b. Respuesta de impulso:
(1) Con función de filtro
a1=[1,0.75,0.125];
b1=[1,-1];
n=0:20;
x1=[1 ceros(1,20)];
y1filter=filtro(b1,a1,x1);
stem(n,y1filter);
title('y1filter');
xlabel('x');
ylabel( 'y');
(2) Utilice la función conv
a1=[1,0.75,0.125];
b1=[1,-1 ] ;
x1=[1 ceros(1,10)];
[h]=impz(b1,a1,10);
y1conv= conv (h,x1);
n=0.19;
stem(n,y1conv,'filled')
(3) Usar función impz p >
a1=[1,0.75,0.125];
b1=[1,-1];
impz(b1,a1,21);
c.respuesta al paso unitario:
(1) Función con filtro
a1=[1,0.75,0.125];
b1= [ 1,-1];
n=0:20;
x2=unos(1,21);
y1filtro=filtro(b1,a1, x2);
stem(n,y1filter);
title('y1filter_step');
xlabel('x'); /p>
ylabel('y');
(2) Usar función conv
a1=[1,0.75, 0.125];
b1=[1,-1];
x2=unos(1,21);
[h]=impz(b1,a1,20);
y1=conv(h,x2);
y1conv=y1(1:21); %Por qué y1conv toma el valor 1 en el valor y1:21, consulte
n1=0:20; %y2à respuesta de paso unitarioà con comentario en la función conv
stem(n1,y1conv,'filled');
title('y1conv'); p>
xlabel('n');
ylabel('y1[n]');
(3) Usar la función impz
a =[1,0.75,0.125];
b=1;
impz(b,a)
Usa y=filtro(p,d,x ) implementa la ecuación en diferencias, donde d representa el coeficiente de la salida y de la ecuación diferencial, p representa el coeficiente de la entrada x y x representa la secuencia de entrada. El número de longitudes de resultados de salida es igual a la longitud de x.
Y y=conv(x,h) se usa para implementar la etapa de convolución, que convoluciona la secuencia de x y la secuencia de h.
y=impz(p,d,N) se utiliza para realizar la respuesta al impulso. Las definiciones de d y p se dan en el filtro. N representa el número de secuencia de la salida de respuesta al impulso. >
.