¿Cómo implementar el filtro FIR para Altera DE2?

-1

Entiendo que se prefiere un DSP en lugar de FPGA para un filtro FIR, pero mi tarea es implementar filtros de software de punto fijo y punto flotante (en C) para el Altera DE2. Apenas sé qué es un filtro FIR, por lo que debo aprender todo, pero puedo programar C y ensamblar, y conozco el hardware lo suficientemente bien como para programar interrupciones de hardware y estoy empezando a manejar la comunicación en serie.

¿Me puede dar algunos consejos sobre cómo aprender y comenzar a escribir el filtro FIR? La especificación es que

  

Las muestras se envían desde una fuente del dispositivo mediante una interfaz en serie (115200   bits / segundo, 1 bit de inicio, 8 bits de caracteres, sin bits de paridad, 1 parada   bit) al puerto receptor de un UART que está conectado por el   Avalon-bus con el núcleo Nios. El Nios-core ejecutará un programa que   implementa un filtro FIR con los coeficientes

 c0       c1      c2     c3

 0.0299  0.4701  0.4701  0.0299
  

Las muestras de salida del filtro FIR se enviarán a través del transmisor   puerto de la misma UART a otro receptor de dispositivo.

Creo que puedo resolver la parte de comunicación (mediante la interfaz UART y la masilla (?) con un cable serie a USB a la placa DE2) pero no estoy seguro de la implementación y el diseño reales del filtro. ¿Me puedes ayudar? Quiero ver los diseños de los filtros FIR para aprender a implementar uno.

    

2 respuestas

2

Ya que esto parece ser una tarea, aquí hay algunos consejos generales.

  1. Consulte el DE2 Manual para obtener información sobre el bus Avalon.
  2. Lea acerca de la arquitectura de Nios .
  3. Antes de intentar comprender los filtros FIR, comprenda convolución .
  4. Luego pase a filtros FIR .

Y en ese punto, probablemente veas cómo implementar uno. Se reduce a multiplicar las operaciones de acumulación y manipular un par de punteros. No tardarás mucho ya que ya tienes tus coeficientes. La teoría es la parte más difícil.

    
respondido por el Matt Young
2

Como no sabes nada sobre el filtrado FIR, comienza ahí. Obtenga un buen libro de DSP: Lyons es un buen comienzo para comenzar con: enlace . O puede leer la guía DSP de Smith en línea: enlace . Implementar un filtro FIR es realmente sencillo una vez que tienes la teoría, simplemente barajas una serie de valores de datos pasados, multiplicándolos por algunos números y sumando todos los resultados.

Cree una implementación de software en la PC, conviértala en una función que tome una muestra a la vez, la filtre y devuelva el valor filtrado. Llama a eso en tu función main() que toma datos de un archivo y los escribe en un archivo.

Una vez que hayas trabajado, crea la parte Nios que tomará las muestras. Por ahora, solo devuélvelas sin filtrar. Una vez que esa parte está funcionando, puede insertar su filtro FIR desde la versión para PC. Mueva el código al entorno Nios, debería ser relativamente fácil. Aplique el filtro al flujo de datos entrantes y envíe los valores devueltos fuera del puerto serie.

    
respondido por el Martin Thompson

Lea otras preguntas en las etiquetas