| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081 |
- /*
- * Academic License - for use in teaching, academic research, and meeting
- * course requirements at degree granting institutions only. Not for
- * government, commercial, or other organizational use.
- *
- * descrambler.c
- *
- * Code generation for function 'descrambler'
- *
- */
- /* Include files */
- #include "descrambler.h"
- /* Function Definitions */
- static float b[9];
- static float a[9];
- static float a1;
- static int k;
- static float zf[8];
- //static double b_b[19];
- //static double b_a[19];
- //static double b_zf[18];
- void descramble(float *value, float sine, const float B1[9], const float A1[9],
- const float B2[19], const float A2[19], float Z1[8], float
- Z2[18])
- {
- /* Filter to remove 8kHz tone */
- memcpy(&b[0], &B1[0], 9U * sizeof(float));
- memcpy(&a[0], &A1[0], 9U * sizeof(float));
- a1 = A1[0];
- if ((!(A1[0] == 0.0)) && (A1[0] != 1.0)) {
- for (k = 0; k < 9; k++) {
- b[k] /= a1;
- }
- for (k = 0; k < 8; k++) {
- a[k + 1] /= a1;
- }
- a[0] = 1.0;
- }
- memset(&zf[0], 0, sizeof(float) << 3);
- a1 = Z1[0] + *value * b[0];
- for (k = 0; k < 7; k++) {
- zf[k] = Z1[k + 1];
- }
- for (k = 0; k < 8; k++) {
- Z1[k] = (zf[k] + *value * b[k + 1]) + -a1 * a[k + 1];
- }
- *value = a1;
- /* Shifting by 7kHz */
- // *value = a1 * sine;
- //
- // /* Low pass filter */
- // memcpy(&b_b[0], &B2[0], 19U * sizeof(double));
- // memcpy(&b_a[0], &A2[0], 19U * sizeof(double));
- // a1 = A2[0];
- // if ((!(A2[0] == 0.0)) && (A2[0] != 1.0)) {
- // for (k = 0; k < 19; k++) {
- // b_b[k] /= a1;
- // }
- // for (k = 0; k < 18; k++) {
- // b_a[k + 1] /= a1;
- // }
- // b_a[0] = 1.0;
- // }
- //
- // memset(&b_zf[0], 0, 18U * sizeof(double));
- // a1 = Z2[0] + *value * b_b[0];
- // memcpy(&b_zf[0], &Z2[1], 17U * sizeof(double));
- // for (k = 0; k < 18; k++) {
- // Z2[k] = (b_zf[k] + *value * b_b[k + 1]) + -a1 * b_a[k + 1];
- // }
- // *value = a1;
- }
- /* End of code generation (descrambler.c) */
|