5. Esquema de diseño principal

domingo, 16 de marzo de 2008

En un estudio más detallado de la implementación de nuestro proyecto, el reverberador digital, hemos diseñado el esquema de bloques de nuestro proyecto con un pequeño esbozo de las funcionalidades básicas de cada uno, asi como el algoritmo que seguirá el circuito para conseguir dicho efecto.

En primer lugar, para la implementación del reverberador seguiremos el esquema de generaración de la reverberación más simple pudiendo ser modificado y aumentado más adelante. Los esquemas más complejos de reverberación son montados encima de este esquema inicial, con lo cual si más adelante ampliamos la complejidad no tendremos problemas de diseño puesto que este será incremental. El esquema básico de reverberación:

Ahora nos centraremos en definición de cada bloque del circuito y una pequeña explicación sobre su función. Estos funcionalidades pueden ser modificadas y/o mejoradas en el transcurso de la implementación del mismo. Tenemos la gráfica del bloque entero:

La UC (Unidad de Control), se trata de una máquina de estados que será la que gobernará el circuito. Mediante la señal de "control" (no especificamos si la señal de control será de tipo bus ni su anchura hasta la implementación en circuito) y la señal "estados" que marcará en que estado se encuentra el dispositivo, conseguiremos la correcta sincronización de las órdenes en cada momento. La UC tendrá los siguientes estados :

1. Inicialización: se reseteará el circuito entero y se inicializará la memoria.

2. Funcionamiento: en el cual la señal de entrada sufrirá el algoritmo de revereberación y saldrá reverberada. El algoritmo de reverberación:

señal_salida(0) = señal_entrada(0),

señal_salida(t) = señal_entrada(t) + retardo, si t>0

siendo: retardo = señal_entrada(t-1)*A

El producto se efectuará desde la muestra primera hasta la penúltima con la atenuación A. Un pequeño ejemplo:

si t=3

retardo(3) = A^3*señal(0)+A^2*señal(1)+A*señal(2) =>

señal_salida(3) = señal(3) + A*señal(2) + A^2*señal(1) + A^3*señal(0)

sea señal = señal_entrada

Definiremos más adelante el número de muestras de la señal anterior que guardamos en memoria. En principio guardaremos n>40 muestras, guardando la muestra 41 en la posición de la muestra 0.

3. Desconexión: La señal de entrada acaba y el circuito para de funcionar.

El AC97 es el circuito de recepción y emisión de la señal, posee ya integrados unos convertidos A/D para la entrada y D/A para la salida. La señal data_in es una señal que nos marcará la amplitud en ese instante y saldrá bit a bit debiendo ser guardada y enviada a modo de bus por el recibe señal.

La gráfica más detallada del bloque aritmético:El bloque recibe señal y el bloque envía señal están intimamente relacionados con el AC97 y seu forma de enviar la señal, cogeremos 18 muestras de las que salgan del AC97 y las trataremos a modo de bus y en salida cogeremos el bus y lo enviaremos bit a bit.

El circuito aritmético se encargará en general de la recepción de la señal, su tratamiento y su envio de nuevo al AC97. Ya explicados los bloques recibe señal y envia señal nos centraremos en mostrar el fucnionamiento de los demás bloques consistentes.

El Bloque de Decodificación se encarga de gobernar el algoritmo, marcando en que lugar deben ser guardadas las muestras dentro de la BRAM y en que orden deben salir las muestras para ir al generador de retardo.

El bloque generador de retardo crea el retardo de la señal y se la suma a la señal de entrada. En el debe estar especificado la atenuación. Deberemos calcular que factor de atenuación que usaremos en el circuito para que la señal no se atenúe ni demasiado rápido ni que no se aprecie este efecto.

La memoria BRAM almacenará las muestras de la señal en los instantes de tiempo.

0 comentarios: