Red de conocimiento informático - Material del sitio web - 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:

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:

En MATLAB, puede usar la función y=filter(p,d,x) para simular la ecuación en diferencias, o usar la función y=conv(x,h) para calcular la convolución y luego usar y=impz(p, d,N) Encuentre la respuesta al impulso del sistema.

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])

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

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');

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. >

.