Resultado de la salida del filtro FIR Interpretación Mientras que la entrada se toma de ADC161S626: 16 bits

0

He implementado un filtro de paso bajo FIR de 20 órdenes, frecuencia de corte de 1000 HZ en Sparten - 6 FPGA. Primero calculo los coeficientes en Matlab, luego los puse directamente en código vhdl. Aquí están mis coeficientes.

H(0) <= to_signed(26,16); --10000HZ cutoff
H(1) <= to_signed(67,16);
H(2) <= to_signed(169,16);
H(3) <= to_signed(369,16);
H(4) <= to_signed(686,16);
H(5) <= to_signed(1111,16);
H(6) <= to_signed(1606,16);
H(7) <= to_signed(2108,16);
H(8) <= to_signed(2542,16);
H(9) <= to_signed(2836,16);
H(10) <= to_signed(2940,16);
H(11) <= to_signed(2836,16);
H(12) <= to_signed(2542,16);
H(13) <= to_signed(2108,16);
H(14) <= to_signed(1606,16);
H(15) <= to_signed(1111,16);
H(16) <= to_signed(686,16);
H(17) <= to_signed(369,16);
H(18) <= to_signed(169,16);
H(19) <= to_signed(67,16);
H(20) <= to_signed(26,16);

Ahora, en realidad, estoy tomando una entrada de realimentación de par de algún sensor. El par se convierte en voltaje. El voltaje se digitaliza en formato de 16 bits. El valor filtrado, la salida del filtro está en formato de 32 bits.

Aquí está la instantánea de Teraterm. ¿Cómo convierto estos valores a voltajes? introduzca la descripción de la imagen aquí

Gracias.

Editado:Enlapáginanúmero16de este documento que han proporcionado las conversiones:

Ahora han discutido acerca de + IN, -IN, Vref. Me gustaría dar mis voltajes aquí, que puedo medir en los pines del adc usando un multímetro:

AhorapartedelahojadedatosADC:

Ahora los valores mostrados digitalizados:

Todas las tres imágenes anteriores son recientes. Entonces, cómo relacionar los voltajes en los pines y el valor digitalizado del voltaje en el pin MISO, que muestre en términos reales.

finalmente, ¿cómo entender qué valor de salida de filtro representa qué voltaje? ¿Cuál es el efecto de aplicar el filtro FIR aquí? ¿Hizo algo bueno o no? .. En las simulaciones matlab Definitivamente hace algo bueno y amp; elimina los picos, pero no puedo entender en la implementación.

Gracias por favor alguien

    
pregunta user3217310

2 respuestas

1

Definiendo Vin como (+ IN) - (-IN).

Este es un ADC bipolar con la salida en formato de complemento de 2. En el complemento a 2, el MSB se considera negativo, específicamente un valor de -32768 para un número de 16 bits. Esto da un rango de 0 a 32767d para entradas positivas y de 65535d a 32768d para entradas negativas. O en binario 0 a 0111111111111111 para 0 a escala completa positiva y 1111111111111111 a 1000000000000000 para -1LSB a escala completa negativa.

La ganancia de su voltaje ADC (Vin) a la salida de datos es:

D = Vin / Vref * 2 ^ (n-1) para Vin positivo

D = (Vref + Vin) / Vref * 2 ^ (n-1) + 2 ^ (n-1) para Vin negativo

Entonces, en su caso (suponiendo un Vin positivo) D = Vin / 2.96 * 2 ^ (15), para Vin = 1V D = 1 / 2.96 * 2 ^ 15 = 11070d y cualquier valor de ADC > = 32768 es negativo (es decir, -IN > + IN)

Cuando aplica esto al filtro FIR, hay un factor de ganancia asociado con las tomas del filtro. Recuerde que la función de transferencia es: suma (x * h) donde x es la secuencia de datos de entrada y h es la secuencia de coeficientes, por lo que la ganancia de CD es suma (h). Para su ejemplo, es 25980d (por mi cálculo).

Por lo tanto, al aplicar 1 V al ADC (diferencialmente), se obtiene 11070d en la salida del ADC y 11070 * 25980 = 287598600 en la salida del FIR.

O trabajando hacia atrás: Vin = FIR_output / 25980 * 2 ^ (- 15) * 2.96

por ejemplo para FIR_output = 413365728

Vin = 413365728/25980 * 2 ^ (- 15) * 2.96 = 1.437V

    
respondido por el akellyirl
0

El valor de ADC es proporcional al voltaje, idealmente para que el valor más grande que pueda expresar sea equivalente al voltaje de referencia. A partir de eso, puede calcular el número para 1V y dividir el valor de ADC por este número para obtener voltaje.

El filtro multiplica una señal constante por un factor que es igual a la suma de los coeficientes. Deberá dividir el resultado final por este valor.

    
respondido por el Simon Richter

Lea otras preguntas en las etiquetas