Red de conocimiento del abogados - Preguntas y respuestas jurídicas - Utilice la función de filtro en MATLAB para encontrar la solución a la ecuación en diferencias dada la entrada y la ecuación en diferencias. Se da la siguiente ecuación en diferencias:

Utilice la función de filtro en MATLAB para encontrar la solución a la ecuación en diferencias dada la entrada y la ecuación en diferencias. Se da la siguiente ecuación en diferencias:

En MATLAB, puedes usar la función y=filter(p, d, x) para simular la ecuación diferencial, también puedes usar la función y=conv(x, h) para calcular la convolución, y use y=impz (p, d, N) Encuentre la respuesta al impulso del sistema.

Implementar la ecuación en diferencias

Comencemos con la simple:

filtro(,1,)

Implementar y[k] = x[k] 2*x[k-1]

y[1]=x[1] 2*0=1 (el estado antes de x[1] es 0)

y[2]=x[2] 2*x[1]=2 2*1=4

a. El siguiente programa se utiliza para realizar la convolución de h y x, usando filtros respectivamente. Al igual que la función conv, los resultados obtenidos por ambas funciones son los mismos.

h = [3 2 1 -2 1 0 -4 0 3]; respuesta al impulso

x = [1 -2 3 -4 3 2 1]; p>

p>

y = conv(h, x);

n = 0:14;

subtrama(2, 1, 1); p>

stem(n, y);

xlabel('Índice de tiempo n'); ylabel('Amplitud');

title('Salida obtenida por convolución' ); cuadrícula;

x1 = [x ceros(1, 8)];

y1 = filtro(h, 1, x1); 2, 1, 2 );

stem(n, y1);

xlabel('Índice de tiempo n'); ylabel('Amplitud'); >title('Salida generada por filtrado'); grid;

Para lograr la respuesta al impulso y la respuesta al paso de la siguiente fórmula, 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 unitario:

(1) Usar función de filtro

a1=[1, 0.75, 0.125]; b1=[1,-1];

n=0:20;

x1=[1 ceros(1,20)];

y1filtro = filtro(b1, a1, x1);

stem(n, y1filtro

título('y1filtro');

xlabel('x' ) ;

ylabel('y');

(2) Usar función conv

a1=[1, 0.75, 0.125]; p>b1=[1,-1];

x1=[1 ceros(1,10)];

[h]=impz(b1,a1,10) ;

y1conv=conv(h,x1);

n=0:19;

tallo(n,y1conv,'llenado')

(3) Usar la función impz

a1=[1, 0.75, 0.125];

b1=[1,-1];

impz (b1, a1, 21);

c. Respuesta al paso unitario:

(1) Usar función de filtro

a1=[1, 0.75, 0.125] ;

b1=[1,-1];

n=0:20;

x2=unos(1,21);

p>

y1filter=filtro(b1, a1, x2);

stem(n, y1filter

título('y1filter_step'); >

xlabel('x');

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 de 1:21 en y1? , consulte la explicación

n1=0:20; y2à respuesta de paso unitarioà anotada con la función conv

stem(n1, y1conv, 'filled');

título ('y1conv');

xlabel('n');

ylabel('y1[n]');

(3) Usar impz función

a=[1, 0.75, 0.125];

b=1;

impz(b, a)

Eso es decir, y = filtro (p, d, x) se utiliza para implementar la ecuación en diferencias, 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. La longitud del resultado de salida es igual a la longitud de x.

Y=conv(x, h) se utiliza para implementar el nivel de volumen. Convoluciona la secuencia x y la secuencia h. El número de resultados de salida es igual a la suma de la longitud de x y la. longitud de h menos Vaya a 1.

y=impz(p, d, N) se utiliza para implementar la respuesta al impulso. Para las definiciones de d y p, consulte el filtro. N representa el número de secuencias generadas por la respuesta al impulso.