Pregunta básica de filtro de FIR

1

Acabamos de empezar a aprender sobre los filtros FIR en mi clase de DSP. La pregunta de la tarea es:

Un filtro FIR en particular tiene coeficientes {b (k)} = {3, 4, -4, -3} para k = 0, 1, 2, 3. Da la salida y [n] cuando la entrada es x [n] = δ [n].

¿Estoy correcto de que las salidas deberían ser:

y [0] = 3 y [1] = 0 y [2] = 0 y [3] = 0?

    
pregunta whimsey

1 respuesta

0

Tardío, pero tal vez aún pueda ayudar a alguien: es lo mismo que multiplicar dos números, pero en lugar de llevar, usas el mismo lugar para el número entero resultante, con la longitud del resultado longitud (primero) + longitud (segundo) -1.

Ej .: 14 y 23 , ambas longitud 2 = > la longitud final es 2 + 2 - 1 = 3 . Normalmente, 14*23 = 14*3 + 14*20 , pero el primer número da como resultado un carry: 14*3 = 4*3 + 10*3 = 42 . En la convolución, usted trata a 4*3 no como 2 carry 1 , sino como 12 , un número que ocupa el mismo lugar que un dígito. Lo que significa que el primer número sería: [3, 12] , y el segundo sería [2, 8, 0] (desplazado un dígito). Y ahora solo tienes que agregarlos, lugar por lugar: [2, 8+3, 12+0] = [2, 11, 12] .

Si ayuda, así es como se vería en C / C ++, considerando que el primer vector es a, el segundo b y la salida y:

for(int i=0; i<a.size(); ++i)
    for(int j=0; j<b.size(); ++j)
        y[i+j] += a[i]*b[j];

Como puede ver, toma el primer elemento del primer vector (el lugar del "dígito") y lo multiplica, secuencialmente, con cada elemento del segundo. Luego se incrementa, el segundo elemento se multiplica con cada elemento del primer vector, y así sucesivamente.

Para su caso, convoluciona con la señal dirac, por lo tanto un 1 (tal vez cero rellenado, depende de cuánto tiempo desea que la señal sea). Cualquier número multiplicado con 1 es en sí mismo, por lo que estuvo correcto en su comentario. Si tuviera, por ejemplo, una entrada de 2 muestras como [2, 5] , y el resultado hubiera sido:

     [3,   4,  -4,  -3] *
               [2,   5] =
-----------------------
    [15,  20, -20, -15] +
[6,   8,  -8,  -6,   0] =
-----------------------
[6,  23,  12, -26, -15]
    
respondido por el a concerned citizen

Lea otras preguntas en las etiquetas