La definición o diferencia entre dsp de punto fijo y dsp de punto flotante
1. Macroscópicamente: el rango dinámico del dsp de punto flotante es mucho mayor que el del dsp de punto fijo. En aritmética de punto fijo, los programadores siempre deben prestar atención a la aparición de desbordamiento. Para evitar el desbordamiento, deben cambiar y calibrar continuamente o realizar un truncamiento.
El primero requiere mucho tiempo y espacio, y el segundo provocará una pérdida de precisión. Por el contrario, los DSP de punto flotante pueden ampliar el rango dinámico, mejorar la precisión y ahorrar tiempo de cálculo y espacio de almacenamiento debido a una calibración, cambios y comprobaciones de desbordamiento muy reducidas.
La aritmética de punto fijo no es más que tratar los datos como números enteros. Normalmente, las muestras AD son números enteros que tienen un factor de escala relativo a la señal analógica real. Todos sabemos que el AD de 16 bits se utiliza para muestrear señales de 0 a 5 V, por lo que la salida entera del AD dividida por 2 ^ 16 y multiplicada por 5 V es el voltaje correspondiente.
En un DSP de punto fijo, esta muestra de 16 bits se procesa directamente en lugar de convertirse a un voltaje decimal, porque el DSP de punto fijo no puede representar decimales con suficiente precisión y solo puede realizar cálculos en números enteros.
La ventaja del DSP de punto flotante es que puede convertir el número entero muestreado en una representación decimal del voltaje sin pérdida de precisión (el decimal se representa en notación científica), porque la notación científica se puede utilizar en situaciones muy representativas. señales en un amplio rango dinámico.
2. Hardware: Dejando de lado por el momento la comparación de estas características macro, desde una perspectiva puramente técnica, la diferencia entre punto fijo y punto flotante se refleja principalmente en dos aspectos, a saber, el hardware y el hardware. software.
La diferencia en el hardware proviene de: el procesador DSP de punto flotante tiene un multiplicador de punto flotante/entero, una unidad de operación lógica y aritmética de número entero/punto flotante ALU, un registro adecuado para almacenar resultados de punto flotante de precisión extendida, etc.
3. Software: veamos las diferencias en el desarrollo de software, principalmente las características de programación y las precauciones del DSP de punto flotante; el DSP de punto fijo es adecuado para calibración, desplazamiento, detección de desbordamiento y otras operaciones de flotación. -operaciones puntuales.
Al comparar dos números de punto flotante, nunca utilice el operador == para determinar si son iguales. Incluso al comparar dos números idénticos, es posible que existan pequeñas diferencias de redondeo.
Incluso si existe una representación de 0 en C, no es seguro definir un 0 exacto. Nunca escriba código como (x==0), en su lugar escriba (fabs(x) < TINY), donde TINY se define como un valor muy pequeño, el error de redondeo del procesador para formatos de punto flotante.
Información ampliada:
La mayor parte del procesamiento de la cadena de señal se realiza en códecs estándar como MPEG-2, MPEG-4 y JPEG. La aritmética de punto flotante para una mayor precisión y un mayor rango dinámico no sólo es inútil, sino simplemente inutilizable, ya que estos algoritmos suelen ser muy precisos.
Por ejemplo, la transformación utilizada por los códecs de vídeo en el dominio de la frecuencia es en realidad alguna forma de transformación DCT (transformación de coseno discreta). A primera vista, la aritmética de coma flotante parece adaptarse mejor a los cálculos DCT, al igual que se adapta mejor a los cálculos FFT.
La aritmética de coma flotante produce una DCT más precisa. Desafortunadamente, DCT en códecs de video está diseñado para realizarse en procesadores de punto fijo y es lo más preciso posible, por lo que buscar una mayor precisión aquí es simplemente incorrecto.
Además, la mayor parte de la carga de trabajo del códec de vídeo se utiliza en el código de control, que tampoco requiere codificación de punto flotante. Por ejemplo, los codificadores de entropía utilizados en los códecs de vídeo representan una gran parte de la carga de trabajo general (esto es especialmente cierto en el caso del codificador CABAC utilizado en el algoritmo H.264).
Debido a que el procesador Blackfin tiene instrucciones diseñadas específicamente para acelerar el rendimiento de los algoritmos de vídeo, la elección correcta se puede hacer más claramente con ambos procesadores considerados en este artículo.
Por el contrario, los procesadores SHARC no tienen instrucciones en vídeo dedicadas. Además, el consumo de energía es fundamental para el mercado móvil, que prácticamente excluye a los procesadores de punto flotante. Estos factores hacen que la elección sea muy sencilla.
El resto de ejemplos de aplicaciones requieren un análisis más profundo para realizar la selección correcta del procesador.
Referencia: Enciclopedia Baidu-Tecnología DSP