Filtro de decimación de tasa de entero variable

Recomendado para:

  • Dispositivo: Desconocido

  • Quartus®: v9.1

author-image

Por

En el ejemplo de diseño del filtro de decimación de tasa de entero variable se muestra cómo utilizar intel® DSP Builder Advanced Blockset (DSPB-AB) para implementar un filtro de diezmación que puede cambiar su velocidad de diezma en tiempo de ejecución. También es compatible con varios canales y aprovecha el plegable automático de DSPB-AB para generar código de nivel de transferencia de registro (RTL) que maximiza la reutilización del hardware para el ahorro de recursos. El diseño actual admite tasas de diezma de 1, 2, 4, 8 y 16. Sin embargo, puede modificar fácilmente el diseño para admitir otras velocidades de diezma de enteros.

Puede implementar de manera eficiente la decimación convencional mediante filtros M a través de la degradación de la parfase con un conmutador de entrada y vías paralelas M. Cada ruta es una farsa del filtro prototipo original. Si el conmutador de entrada omite cada otra fase, en lugar de pasar por todas las rutas M, la velocidad de diezmación se convierte en M/2, etc.

En el diseño real, en lugar de tener un conmutador y un banco paralelo de rutas de filtro de respuesta a impulsos finitarios (FIR), implementamos solo un filtro de fiR físfase de la pifia, en el que las indagatorias correspondientes a los parfásicas cambian cada ciclo a la velocidad de muestreo de entrada. Tiene el mismo efecto que la entrega de muestras de entrada sucesivamente a un banco paralelo de tofases pardas. Almacenamos las piezas físfas en la memoria y utilizamos un acumulador de entrada como el que se utiliza en un oscilador controlado numérico (NCO) para controlar qué fase se está leyendo y enviando actualmente a la ruta de filtro de FIR. El tamaño del paso del acumulador de fase controla la rapidez con la que el sistema pasa por las fosas físicas, por lo tanto, la velocidad de diezma. La señal de desborde del acumulador indica cuándo se han pasado las fases de ciclo. Cuando afirma, se genera una muestra de salida válida a la velocidad de muestreo más baja.

La arquitectura del algoritmo se muestra en la Figura 1.

Figura 1. Diagrama de bloques de Vardecimator.

La ruta de filtro de FIR es un filtro FIR de forma directa modificada. Los efectos de filtro provienen de la tabla de mirada en alto (LUT) y se cambian de una bifasa a otra. Se adjunta un acumulador a cada una de las salidas del multiplicador. Acumula las salidas de todas las fánfas a su toma hasta que la señal de rollover indica que se visitaron todas las fases y se debe producir una salida. En ese momento, un agregador multipuerto suma todas las salidas del acumulador y genera una muestra final decimada. Al mismo tiempo, los acumulados borran el contenido y se prepararán para el siguiente ciclo de acumulación.

La reconfiguración del cambio en la velocidad de diezma se logra variando el incremento de fase del acumulador o el tamaño del paso en tiempo de ejecución. Puede actualizar el incremento de fase en tiempo real por un procesador a través de la interfaz Avalon® Memory-Mapped (Avalon-MM). Cuando la tasa de diezma cambia, también cambia el número de fánfas acumulados en la ruta de filtro de FIR. Para maximizar el rango dinámico, podemos suministrar un factor de escala reconfigurable a las unidades de multiplicación y acumulación y a la salida final del agregador. También puede reconfigurar este registro de control a través de un procesador a través de la interfaz Avalon-MM.

Este ejemplo también demuestra cómo aprovechar la característica de plegable del DSPB-AB. El plegable, o multiplexión por división de tiempo, permite automáticamente compartir recursos y volver a utilizar el hardware según los parámetros del sistema especificados por el usuario. Es especialmente útil en los diseños de multicanal.

Para obtener más información sobre el diseño de filtros de remuestreo en DSPB-AB, consulte AN 623: Using the DSP Builder Advanced Blockset to Implement Resampling Filters (PDF).

Descargue los archivos utilizados en este ejemplo:

Los archivos de la descarga .zip incluyen lo siguiente:

  • vardecimator_rt.mdl:archivo de diseño DSPB-AB para el filtro de decimación de velocidad variable
  • setup_vardecimator_rt.m:script de MATLAB para configurar la inicialización y los parámetros de vardecimator_rt.mdl
  • stop_vardecimator_rt.m— script de MATLAB para mostrar la salida del filtro de decimación de velocidad variable y compararla con la forma de onda de entrada
  • vardecimator_rt_bare.mdl:Archivo de diseño basado en vardecimator_rt.mdl. Algunos bloques de banco de prueba no síntesisibles se eliminan para la generación de RTL

El contenido de esta página es una combinación de la traducción humana y automática del contenido original en inglés. Este contenido se ofrece únicamente para su comodidad como información general y no debe considerarse completa o precisa. Si hay alguna contradicción entre la versión en inglés de esta página y la traducción, prevalecerá la versión en inglés. Consulte la versión en inglés de esta página.