Move source into src directory
[a56.git] / frac2int.c
diff --git a/frac2int.c b/frac2int.c
deleted file mode 100644 (file)
index 8f01796..0000000
+++ /dev/null
@@ -1,118 +0,0 @@
-#if 0
-+----------------------------------------------------------------------+
-|   Question: My filter design package gives me decimal fractional     |
-|             numbers  as output  for my  FIR filter coefficients.     |
-|             How  do I convert  these decimal fractions  into the     |
-|             DSP56200's format?                                       |
-+----------------------------------------------------------------------+
-
-      Answer:
-           It's fairly easy to convert decimal fractions into  the
-      data  format required by the DSP56200.  The DSP56200 coeffi-
-      cients are represented as  24-bit  signed,  fractional,  2's
-      complement numbers as shown in Table 1.
-
-         TABLE 1 - Representations for FIR Filter Coefficients
-         -----------------------------------------------------
-
-          Decimal                                  Hexadecimal
-          Fraction       24-Bit Binary Value       Coefficient
-          --------       -------------------       ----------
-
-            0.75     0.1100000 00000000 00000000    60 00 00
-            0.5      0.1000000 00000000 00000000    40 00 00
-            0.25     0.0100000 00000000 00000000    20 00 00
-            0.125    0.0010000 00000000 00000000    10 00 00
-           -0.125    1.1110000 00000000 00000000    F0 00 00
-           -0.75     1.0100000 00000000 00000000    A0 00 00
-
-      Each  24-bit  coefficient  is  separated  into  three  bytes
-      corresponding  to the high, middle, and low bytes.  The high
-      byte is written to the DSP56200 at  address  0A  (hex),  the
-      middle byte to address 0B (hex), and the low byte to address
-      0C (hex).
-
-      Conversion Procedure:
-
-         Step 1:  Multiply the decimal fraction by 8388608.0 (decimal).
-                  Note that 8388608 = 2 raised to the 23rd power.
-         Step 2:  Truncate or round the result into an integer.
-         Step 3:  Logically AND this integer with 00FFFFFF (hex).
-         Step 4:  Write the result to an output file as a hex integer.
-
-      It is easy to write a program to perform this conversion  on
-      a  set  of  coefficients.  If done by computer program, make
-      sure that all integer  variables  are  represented  with  at
-      least  24-bits.   An  example  of  a  short  "C"  program is
-      included at the end of this answer.
-
-      Things to watch for:
-
-         (1) Avoid letting a coefficient value be exactly 800000
-             (-1.0 in a fractional system).  If this coefficient
-             is multiplied by a data sample with value -1.0, the
-             result is -1.0 instead of +1.0 as expected. This is
-             because +1.0 cannot be represented in a signed, 2's
-             complement, fractional system.
-
-         (2) The filter coefficients must  be carefully selected
-             to prevent overflow.   If there is a possibility of
-             overflow with a set of filter coefficients, then all
-             coefficients must be scaled by a constant value. The
-             DSP56200's 24-bit coefficients  allow plenty of room
-             for scaling.   If 12-bit input data samples are used
-             in a system,  the potential  for overflow is greatly
-             reduced if the samples are right justified and sign-
-             extended four bits before they are sent to the 
-             DSP56200.
-
-"C" Program:
-#endif
-           /****************************************\
-           **  DECIMAL FRACTION TO HEX CONVERSION  **
-           \****************************************/
-
-/******************************************************************\
-*  This program converts one decimal, fractional number to a hex   *
-*  number which can be written to the DSP56200's Coefficient RAM   *
-*  Access registers.  It prompts the user for a decimal fraction   *
-*  and returns the corresponding hex number.                       *
-*                                                                  *
-*   Examples of Program Results (useful for checking programs)     *
-*        Inputs                    Outputs                         *
-*        ------                    -------                         *
-*         0.750                =>  600000                          *
-*         0.500                =>  400000                          *
-*         0.250                =>  200000                          *
-*         0.125                =>  100000                          *
-*        -0.125                =>  f00000                          *
-*        -0.750                =>  a00000                          *
-*         0.00784313678741455  =>  010101                          *
-*        -0.00784313678741455  =>  fefeff                          *
-*                                                                  *
-*   Note: The program assumes that the variable type "long" is an  *
-*         integer which is at least 24-bits wide.                  *
-*                                                                  *
-*   Also: The DSP56200 cannot  use any coefficient value with a    *
-*         magnitude of 1.0 or larger.  All coefficients must be    *
-*         signed, fractional quantities.                           *
-\******************************************************************/
-
-main()
-{
-           double fractnum;              /* double precision floating pt */
-           long   hexval;                /* long integer */
-
-    for(;;) {
-        /* Read 1 Decimal Floating Point Number from the Keyboard */
-           printf("Enter the decimal fraction: ");
-           scanf("%lf", &fractnum);
-
-        /* Convert to a Hex Integer which can be used by the DSP56200 */
-           hexval =  (long) (8388608.0 * fractnum);
-           hexval =  0x00ffffffL & hexval;
-
-        /* Write the Hex number out to the Terminal */
-           printf("DSP56200 Coefficient = %06lx\n", hexval);
-    }
-}