@@ -7,6 +7,7 | |||||
7 | // version 1.5: 20/05/2014 |
|
7 | // version 1.5: 20/05/2014 | |
8 | // version 1.6: 19/12/2014 |
|
8 | // version 1.6: 19/12/2014 | |
9 | // version 1.7: 15/01/2015 (modifs de Paul + correction erreurs qui se compensaient (LSB <=> MSB + indices [0,2] <=> [1,3]) |
|
9 | // version 1.7: 15/01/2015 (modifs de Paul + correction erreurs qui se compensaient (LSB <=> MSB + indices [0,2] <=> [1,3]) | |
|
10 | // version 1.8: 02/02/2015 (gestion des divisions par zéro) | |||
10 |
|
11 | |||
11 | #ifndef BASIC_PARAMETERS_H_INCLUDED |
|
12 | #ifndef BASIC_PARAMETERS_H_INCLUDED | |
12 | #define BASIC_PARAMETERS_H_INCLUDED |
|
13 | #define BASIC_PARAMETERS_H_INCLUDED | |
@@ -191,10 +192,17 void BP1_set( float * compressed_spec_ma | |||||
191 | +compressed_spec_mat[i*NB_VALUES_PER_SPECTRAL_MATRIX+4] *compressed_spec_mat[i*NB_VALUES_PER_SPECTRAL_MATRIX+4] //Im S13 |
|
192 | +compressed_spec_mat[i*NB_VALUES_PER_SPECTRAL_MATRIX+4] *compressed_spec_mat[i*NB_VALUES_PER_SPECTRAL_MATRIX+4] //Im S13 | |
192 | +compressed_spec_mat[i*NB_VALUES_PER_SPECTRAL_MATRIX+11]*compressed_spec_mat[i*NB_VALUES_PER_SPECTRAL_MATRIX+11] //Im S23 |
|
193 | +compressed_spec_mat[i*NB_VALUES_PER_SPECTRAL_MATRIX+11]*compressed_spec_mat[i*NB_VALUES_PER_SPECTRAL_MATRIX+11] //Im S23 | |
193 | ); |
|
194 | ); | |
194 | NVEC_V0 = compressed_spec_mat[i*NB_VALUES_PER_SPECTRAL_MATRIX+11]/ tmp; // S23 Im => n1 |
|
195 | if (tmp != 0.) { // no division by 0. | |
195 |
NVEC_V |
|
196 | NVEC_V0 = compressed_spec_mat[i*NB_VALUES_PER_SPECTRAL_MATRIX+11]/ tmp; // S23 Im => n1 | |
196 |
NVEC_V |
|
197 | NVEC_V1 = -compressed_spec_mat[i*NB_VALUES_PER_SPECTRAL_MATRIX+4] / tmp; // S13 Im => n2 | |
197 |
|
198 | NVEC_V2 = compressed_spec_mat[i*NB_VALUES_PER_SPECTRAL_MATRIX+2] / tmp; // S12 Im => n3 | ||
|
199 | } | |||
|
200 | else | |||
|
201 | { | |||
|
202 | NVEC_V0 = 0.; | |||
|
203 | NVEC_V1 = 0.; | |||
|
204 | NVEC_V2 = 0.; | |||
|
205 | } | |||
198 | lfr_bp1[i*NB_BYTES_BP1+4] = (uint8_t) (NVEC_V0*127.5 + 128); // Shift and cast into a 8-bit uint8_t (0, ..., 255) with rounding |
|
206 | lfr_bp1[i*NB_BYTES_BP1+4] = (uint8_t) (NVEC_V0*127.5 + 128); // Shift and cast into a 8-bit uint8_t (0, ..., 255) with rounding | |
199 | lfr_bp1[i*NB_BYTES_BP1+5] = (uint8_t) (NVEC_V1*127.5 + 128); // Shift and cast into a 8-bit uint8_t (0, ..., 255) with rounding |
|
207 | lfr_bp1[i*NB_BYTES_BP1+5] = (uint8_t) (NVEC_V1*127.5 + 128); // Shift and cast into a 8-bit uint8_t (0, ..., 255) with rounding | |
200 | pt_uint8 = (uint8_t*) &NVEC_V2; // Affect an uint8_t pointer with the adress of NVEC_V2 |
|
208 | pt_uint8 = (uint8_t*) &NVEC_V2; // Affect an uint8_t pointer with the adress of NVEC_V2 | |
@@ -216,8 +224,13 void BP1_set( float * compressed_spec_ma | |||||
216 | #endif |
|
224 | #endif | |
217 | //======================================================= |
|
225 | //======================================================= | |
218 | // BP1 ellipticity == PA_LFR_SC_BP1_ELLIP_F0 == 4 bits |
|
226 | // BP1 ellipticity == PA_LFR_SC_BP1_ELLIP_F0 == 4 bits | |
219 | aux = 2*tmp / PSDB; // Compute the ellipticity |
|
227 | if (PSDB != 0.) { // no division by 0. | |
220 |
|
228 | aux = 2*tmp / PSDB; // Compute the ellipticity | ||
|
229 | } | |||
|
230 | else | |||
|
231 | { | |||
|
232 | aux = 0.; | |||
|
233 | } | |||
221 | tmp_uint8 = (uint8_t) (aux*15 + 0.5); // Shift and cast into a 8-bit uint8_t with rounding |
|
234 | tmp_uint8 = (uint8_t) (aux*15 + 0.5); // Shift and cast into a 8-bit uint8_t with rounding | |
222 | // where just the first 4 bits are used (0, ..., 15) |
|
235 | // where just the first 4 bits are used (0, ..., 15) | |
223 | lfr_bp1[i*NB_BYTES_BP1+6] = lfr_bp1[i*NB_BYTES_BP1+6] | (tmp_uint8 << 3); // Put these 4 bits next to the right place |
|
236 | lfr_bp1[i*NB_BYTES_BP1+6] = lfr_bp1[i*NB_BYTES_BP1+6] | (tmp_uint8 << 3); // Put these 4 bits next to the right place | |
@@ -240,8 +253,13 void BP1_set( float * compressed_spec_ma | |||||
240 | + 2 * compressed_spec_mat[i*NB_VALUES_PER_SPECTRAL_MATRIX+10]*compressed_spec_mat[i*NB_VALUES_PER_SPECTRAL_MATRIX+10] |
|
253 | + 2 * compressed_spec_mat[i*NB_VALUES_PER_SPECTRAL_MATRIX+10]*compressed_spec_mat[i*NB_VALUES_PER_SPECTRAL_MATRIX+10] | |
241 | + 2 * compressed_spec_mat[i*NB_VALUES_PER_SPECTRAL_MATRIX+11]*compressed_spec_mat[i*NB_VALUES_PER_SPECTRAL_MATRIX+11]; |
|
254 | + 2 * compressed_spec_mat[i*NB_VALUES_PER_SPECTRAL_MATRIX+11]*compressed_spec_mat[i*NB_VALUES_PER_SPECTRAL_MATRIX+11]; | |
242 | aux = PSDB*PSDB; |
|
255 | aux = PSDB*PSDB; | |
243 | tmp = ( 3*tr_SB_SB - aux ) / ( 2 * aux ); // Compute the degree of polarisation |
|
256 | if (aux != 0.) { // no division by 0. | |
244 |
|
257 | tmp = ( 3*tr_SB_SB - aux ) / ( 2 * aux ); // Compute the degree of polarisation | ||
|
258 | } | |||
|
259 | else | |||
|
260 | { | |||
|
261 | tmp = 0.; | |||
|
262 | } | |||
245 | tmp_uint8 = (uint8_t) (tmp*7 + 0.5); // Shift and cast into a 8-bit uint8_t with rounding |
|
263 | tmp_uint8 = (uint8_t) (tmp*7 + 0.5); // Shift and cast into a 8-bit uint8_t with rounding | |
246 | // where just the first 3 bits are used (0, ..., 7) |
|
264 | // where just the first 3 bits are used (0, ..., 7) | |
247 | lfr_bp1[i*NB_BYTES_BP1+6] = lfr_bp1[i*NB_BYTES_BP1+6] | tmp_uint8; // Record these 3 bits at the 3 first bit positions |
|
265 | lfr_bp1[i*NB_BYTES_BP1+6] = lfr_bp1[i*NB_BYTES_BP1+6] | tmp_uint8; // Record these 3 bits at the 3 first bit positions | |
@@ -411,8 +429,13 void BP1_set( float * compressed_spec_ma | |||||
411 | // of lfr_bp1[i*NB_BYTES_BP1+2] |
|
429 | // of lfr_bp1[i*NB_BYTES_BP1+2] | |
412 | pt_uint8[0] = (pt_uint8[0] & 0x7f); // Make n_cross_e_scal_b_re be positive in any case: |n_cross_e_scal_b_re| |
|
430 | pt_uint8[0] = (pt_uint8[0] & 0x7f); // Make n_cross_e_scal_b_re be positive in any case: |n_cross_e_scal_b_re| | |
413 | #endif |
|
431 | #endif | |
414 | vphi = n_cross_e_scal_b_re / bx_bx_star; // Compute |VPHI| |
|
432 | if (bx_bx_star != 0.) { // no division by 0. | |
415 |
|
433 | vphi = n_cross_e_scal_b_re / bx_bx_star; // Compute |VPHI| | ||
|
434 | } | |||
|
435 | else | |||
|
436 | { | |||
|
437 | vphi = 1.e+20; // Put a huge value | |||
|
438 | } | |||
416 | significand = frexpf(vphi/2, &exponent); // 0.5 <= significand < 1 |
|
439 | significand = frexpf(vphi/2, &exponent); // 0.5 <= significand < 1 | |
417 | // vphi/2 = significand * 2^exponent |
|
440 | // vphi/2 = significand * 2^exponent | |
418 | // The division by 2 is to ensure that max value <= 2^30 (rough estimate) |
|
441 | // The division by 2 is to ensure that max value <= 2^30 (rough estimate) | |
@@ -529,8 +552,15 void BP2_set( float * compressed_spec_ma | |||||
529 | // == PA_LFR_SC_BP2_CROSS_IM_9_F0 == 8 bits |
|
552 | // == PA_LFR_SC_BP2_CROSS_IM_9_F0 == 8 bits | |
530 | // S12 |
|
553 | // S12 | |
531 | aux = sqrt(compressed_spec_mat[i*NB_VALUES_PER_SPECTRAL_MATRIX]*compressed_spec_mat[i*NB_VALUES_PER_SPECTRAL_MATRIX+9]); |
|
554 | aux = sqrt(compressed_spec_mat[i*NB_VALUES_PER_SPECTRAL_MATRIX]*compressed_spec_mat[i*NB_VALUES_PER_SPECTRAL_MATRIX+9]); | |
|
555 | if (aux != 0.) { // no division by 0. | |||
532 | cross_re = compressed_spec_mat[i*NB_VALUES_PER_SPECTRAL_MATRIX+1] / aux; |
|
556 | cross_re = compressed_spec_mat[i*NB_VALUES_PER_SPECTRAL_MATRIX+1] / aux; | |
533 | cross_im = compressed_spec_mat[i*NB_VALUES_PER_SPECTRAL_MATRIX+2] / aux; |
|
557 | cross_im = compressed_spec_mat[i*NB_VALUES_PER_SPECTRAL_MATRIX+2] / aux; | |
|
558 | } | |||
|
559 | else | |||
|
560 | { | |||
|
561 | cross_re = 0.; | |||
|
562 | cross_im = 0.; | |||
|
563 | } | |||
534 | lfr_bp2[i*NB_BYTES_BP2+10] = (uint8_t) (cross_re*127.5 + 128); // Shift and cast into a 8-bit uint8_t (0, ..., 255) with rounding |
|
564 | lfr_bp2[i*NB_BYTES_BP2+10] = (uint8_t) (cross_re*127.5 + 128); // Shift and cast into a 8-bit uint8_t (0, ..., 255) with rounding | |
535 | lfr_bp2[i*NB_BYTES_BP2+20] = (uint8_t) (cross_im*127.5 + 128); // Shift and cast into a 8-bit uint8_t (0, ..., 255) with rounding |
|
565 | lfr_bp2[i*NB_BYTES_BP2+20] = (uint8_t) (cross_im*127.5 + 128); // Shift and cast into a 8-bit uint8_t (0, ..., 255) with rounding | |
536 | #ifdef DEBUG_TCH |
|
566 | #ifdef DEBUG_TCH | |
@@ -540,8 +570,15 void BP2_set( float * compressed_spec_ma | |||||
540 | #endif |
|
570 | #endif | |
541 | // S13 |
|
571 | // S13 | |
542 | aux = sqrt(compressed_spec_mat[i*NB_VALUES_PER_SPECTRAL_MATRIX]*compressed_spec_mat[i*NB_VALUES_PER_SPECTRAL_MATRIX+16]); |
|
572 | aux = sqrt(compressed_spec_mat[i*NB_VALUES_PER_SPECTRAL_MATRIX]*compressed_spec_mat[i*NB_VALUES_PER_SPECTRAL_MATRIX+16]); | |
|
573 | if (aux != 0.) { // no division by 0. | |||
543 | cross_re = compressed_spec_mat[i*NB_VALUES_PER_SPECTRAL_MATRIX+3] / aux; |
|
574 | cross_re = compressed_spec_mat[i*NB_VALUES_PER_SPECTRAL_MATRIX+3] / aux; | |
544 | cross_im = compressed_spec_mat[i*NB_VALUES_PER_SPECTRAL_MATRIX+4] / aux; |
|
575 | cross_im = compressed_spec_mat[i*NB_VALUES_PER_SPECTRAL_MATRIX+4] / aux; | |
|
576 | } | |||
|
577 | else | |||
|
578 | { | |||
|
579 | cross_re = 0.; | |||
|
580 | cross_im = 0.; | |||
|
581 | } | |||
545 | lfr_bp2[i*NB_BYTES_BP2+11] = (uint8_t) (cross_re*127.5 + 128); // Shift and cast into a 8-bit uint8_t (0, ..., 255) with rounding |
|
582 | lfr_bp2[i*NB_BYTES_BP2+11] = (uint8_t) (cross_re*127.5 + 128); // Shift and cast into a 8-bit uint8_t (0, ..., 255) with rounding | |
546 | lfr_bp2[i*NB_BYTES_BP2+21] = (uint8_t) (cross_im*127.5 + 128); // Shift and cast into a 8-bit uint8_t (0, ..., 255) with rounding |
|
583 | lfr_bp2[i*NB_BYTES_BP2+21] = (uint8_t) (cross_im*127.5 + 128); // Shift and cast into a 8-bit uint8_t (0, ..., 255) with rounding | |
547 | #ifdef DEBUG_TCH |
|
584 | #ifdef DEBUG_TCH | |
@@ -550,8 +587,15 void BP2_set( float * compressed_spec_ma | |||||
550 | #endif |
|
587 | #endif | |
551 | // S14 |
|
588 | // S14 | |
552 | aux = sqrt(compressed_spec_mat[i*NB_VALUES_PER_SPECTRAL_MATRIX]*compressed_spec_mat[i*NB_VALUES_PER_SPECTRAL_MATRIX+21]); |
|
589 | aux = sqrt(compressed_spec_mat[i*NB_VALUES_PER_SPECTRAL_MATRIX]*compressed_spec_mat[i*NB_VALUES_PER_SPECTRAL_MATRIX+21]); | |
|
590 | if (aux != 0.) { // no division by 0. | |||
553 | cross_re = compressed_spec_mat[i*NB_VALUES_PER_SPECTRAL_MATRIX+5] / aux; |
|
591 | cross_re = compressed_spec_mat[i*NB_VALUES_PER_SPECTRAL_MATRIX+5] / aux; | |
554 | cross_im = compressed_spec_mat[i*NB_VALUES_PER_SPECTRAL_MATRIX+6] / aux; |
|
592 | cross_im = compressed_spec_mat[i*NB_VALUES_PER_SPECTRAL_MATRIX+6] / aux; | |
|
593 | } | |||
|
594 | else | |||
|
595 | { | |||
|
596 | cross_re = 0.; | |||
|
597 | cross_im = 0.; | |||
|
598 | } | |||
555 | lfr_bp2[i*NB_BYTES_BP2+12] = (uint8_t) (cross_re*127.5 + 128); // Shift and cast into a 8-bit uint8_t (0, ..., 255) with rounding |
|
599 | lfr_bp2[i*NB_BYTES_BP2+12] = (uint8_t) (cross_re*127.5 + 128); // Shift and cast into a 8-bit uint8_t (0, ..., 255) with rounding | |
556 | lfr_bp2[i*NB_BYTES_BP2+22] = (uint8_t) (cross_im*127.5 + 128); // Shift and cast into a 8-bit uint8_t (0, ..., 255) with rounding |
|
600 | lfr_bp2[i*NB_BYTES_BP2+22] = (uint8_t) (cross_im*127.5 + 128); // Shift and cast into a 8-bit uint8_t (0, ..., 255) with rounding | |
557 | #ifdef DEBUG_TCH |
|
601 | #ifdef DEBUG_TCH | |
@@ -560,8 +604,15 void BP2_set( float * compressed_spec_ma | |||||
560 | #endif |
|
604 | #endif | |
561 | // S15 |
|
605 | // S15 | |
562 | aux = sqrt(compressed_spec_mat[i*NB_VALUES_PER_SPECTRAL_MATRIX]*compressed_spec_mat[i*NB_VALUES_PER_SPECTRAL_MATRIX+24]); |
|
606 | aux = sqrt(compressed_spec_mat[i*NB_VALUES_PER_SPECTRAL_MATRIX]*compressed_spec_mat[i*NB_VALUES_PER_SPECTRAL_MATRIX+24]); | |
|
607 | if (aux != 0.) { // no division by 0. | |||
563 | cross_re = compressed_spec_mat[i*NB_VALUES_PER_SPECTRAL_MATRIX+7] / aux; |
|
608 | cross_re = compressed_spec_mat[i*NB_VALUES_PER_SPECTRAL_MATRIX+7] / aux; | |
564 | cross_im = compressed_spec_mat[i*NB_VALUES_PER_SPECTRAL_MATRIX+8] / aux; |
|
609 | cross_im = compressed_spec_mat[i*NB_VALUES_PER_SPECTRAL_MATRIX+8] / aux; | |
|
610 | } | |||
|
611 | else | |||
|
612 | { | |||
|
613 | cross_re = 0.; | |||
|
614 | cross_im = 0.; | |||
|
615 | } | |||
565 | lfr_bp2[i*NB_BYTES_BP2+13] = (uint8_t) (cross_re*127.5 + 128); // Shift and cast into a 8-bit uint8_t (0, ..., 255) with rounding |
|
616 | lfr_bp2[i*NB_BYTES_BP2+13] = (uint8_t) (cross_re*127.5 + 128); // Shift and cast into a 8-bit uint8_t (0, ..., 255) with rounding | |
566 | lfr_bp2[i*NB_BYTES_BP2+23] = (uint8_t) (cross_im*127.5 + 128); // Shift and cast into a 8-bit uint8_t (0, ..., 255) with rounding |
|
617 | lfr_bp2[i*NB_BYTES_BP2+23] = (uint8_t) (cross_im*127.5 + 128); // Shift and cast into a 8-bit uint8_t (0, ..., 255) with rounding | |
567 | #ifdef DEBUG_TCH |
|
618 | #ifdef DEBUG_TCH | |
@@ -570,8 +621,15 void BP2_set( float * compressed_spec_ma | |||||
570 | #endif |
|
621 | #endif | |
571 | // S23 |
|
622 | // S23 | |
572 | aux = sqrt(compressed_spec_mat[i*NB_VALUES_PER_SPECTRAL_MATRIX+9]*compressed_spec_mat[i*NB_VALUES_PER_SPECTRAL_MATRIX+16]); |
|
623 | aux = sqrt(compressed_spec_mat[i*NB_VALUES_PER_SPECTRAL_MATRIX+9]*compressed_spec_mat[i*NB_VALUES_PER_SPECTRAL_MATRIX+16]); | |
|
624 | if (aux != 0.) { // no division by 0. | |||
573 | cross_re = compressed_spec_mat[i*NB_VALUES_PER_SPECTRAL_MATRIX+10] / aux; |
|
625 | cross_re = compressed_spec_mat[i*NB_VALUES_PER_SPECTRAL_MATRIX+10] / aux; | |
574 | cross_im = compressed_spec_mat[i*NB_VALUES_PER_SPECTRAL_MATRIX+11] / aux; |
|
626 | cross_im = compressed_spec_mat[i*NB_VALUES_PER_SPECTRAL_MATRIX+11] / aux; | |
|
627 | } | |||
|
628 | else | |||
|
629 | { | |||
|
630 | cross_re = 0.; | |||
|
631 | cross_im = 0.; | |||
|
632 | } | |||
575 | lfr_bp2[i*NB_BYTES_BP2+14] = (uint8_t) (cross_re*127.5 + 128); // Shift and cast into a 8-bit uint8_t (0, ..., 255) with rounding |
|
633 | lfr_bp2[i*NB_BYTES_BP2+14] = (uint8_t) (cross_re*127.5 + 128); // Shift and cast into a 8-bit uint8_t (0, ..., 255) with rounding | |
576 | lfr_bp2[i*NB_BYTES_BP2+24] = (uint8_t) (cross_im*127.5 + 128); // Shift and cast into a 8-bit uint8_t (0, ..., 255) with rounding |
|
634 | lfr_bp2[i*NB_BYTES_BP2+24] = (uint8_t) (cross_im*127.5 + 128); // Shift and cast into a 8-bit uint8_t (0, ..., 255) with rounding | |
577 | #ifdef DEBUG_TCH |
|
635 | #ifdef DEBUG_TCH | |
@@ -580,8 +638,15 void BP2_set( float * compressed_spec_ma | |||||
580 | #endif |
|
638 | #endif | |
581 | // S24 |
|
639 | // S24 | |
582 | aux = sqrt(compressed_spec_mat[i*NB_VALUES_PER_SPECTRAL_MATRIX+9]*compressed_spec_mat[i*NB_VALUES_PER_SPECTRAL_MATRIX+21]); |
|
640 | aux = sqrt(compressed_spec_mat[i*NB_VALUES_PER_SPECTRAL_MATRIX+9]*compressed_spec_mat[i*NB_VALUES_PER_SPECTRAL_MATRIX+21]); | |
|
641 | if (aux != 0.) { // no division by 0. | |||
583 | cross_re = compressed_spec_mat[i*NB_VALUES_PER_SPECTRAL_MATRIX+12] / aux; |
|
642 | cross_re = compressed_spec_mat[i*NB_VALUES_PER_SPECTRAL_MATRIX+12] / aux; | |
584 | cross_im = compressed_spec_mat[i*NB_VALUES_PER_SPECTRAL_MATRIX+13] / aux; |
|
643 | cross_im = compressed_spec_mat[i*NB_VALUES_PER_SPECTRAL_MATRIX+13] / aux; | |
|
644 | } | |||
|
645 | else | |||
|
646 | { | |||
|
647 | cross_re = 0.; | |||
|
648 | cross_im = 0.; | |||
|
649 | } | |||
585 | lfr_bp2[i*NB_BYTES_BP2+15] = (uint8_t) (cross_re*127.5 + 128); // Shift and cast into a 8-bit uint8_t (0, ..., 255) with rounding |
|
650 | lfr_bp2[i*NB_BYTES_BP2+15] = (uint8_t) (cross_re*127.5 + 128); // Shift and cast into a 8-bit uint8_t (0, ..., 255) with rounding | |
586 | lfr_bp2[i*NB_BYTES_BP2+25] = (uint8_t) (cross_im*127.5 + 128); // Shift and cast into a 8-bit uint8_t (0, ..., 255) with rounding |
|
651 | lfr_bp2[i*NB_BYTES_BP2+25] = (uint8_t) (cross_im*127.5 + 128); // Shift and cast into a 8-bit uint8_t (0, ..., 255) with rounding | |
587 | #ifdef DEBUG_TCH |
|
652 | #ifdef DEBUG_TCH | |
@@ -590,8 +655,15 void BP2_set( float * compressed_spec_ma | |||||
590 | #endif |
|
655 | #endif | |
591 | // S25 |
|
656 | // S25 | |
592 | aux = sqrt(compressed_spec_mat[i*NB_VALUES_PER_SPECTRAL_MATRIX+9]*compressed_spec_mat[i*NB_VALUES_PER_SPECTRAL_MATRIX+24]); |
|
657 | aux = sqrt(compressed_spec_mat[i*NB_VALUES_PER_SPECTRAL_MATRIX+9]*compressed_spec_mat[i*NB_VALUES_PER_SPECTRAL_MATRIX+24]); | |
|
658 | if (aux != 0.) { // no division by 0. | |||
593 | cross_re = compressed_spec_mat[i*NB_VALUES_PER_SPECTRAL_MATRIX+14] / aux; |
|
659 | cross_re = compressed_spec_mat[i*NB_VALUES_PER_SPECTRAL_MATRIX+14] / aux; | |
594 | cross_im = compressed_spec_mat[i*NB_VALUES_PER_SPECTRAL_MATRIX+15] / aux; |
|
660 | cross_im = compressed_spec_mat[i*NB_VALUES_PER_SPECTRAL_MATRIX+15] / aux; | |
|
661 | } | |||
|
662 | else | |||
|
663 | { | |||
|
664 | cross_re = 0.; | |||
|
665 | cross_im = 0.; | |||
|
666 | } | |||
595 | lfr_bp2[i*NB_BYTES_BP2+16] = (uint8_t) (cross_re*127.5 + 128); // Shift and cast into a 8-bit uint8_t (0, ..., 255) with rounding |
|
667 | lfr_bp2[i*NB_BYTES_BP2+16] = (uint8_t) (cross_re*127.5 + 128); // Shift and cast into a 8-bit uint8_t (0, ..., 255) with rounding | |
596 | lfr_bp2[i*NB_BYTES_BP2+26] = (uint8_t) (cross_im*127.5 + 128); // Shift and cast into a 8-bit uint8_t (0, ..., 255) with rounding |
|
668 | lfr_bp2[i*NB_BYTES_BP2+26] = (uint8_t) (cross_im*127.5 + 128); // Shift and cast into a 8-bit uint8_t (0, ..., 255) with rounding | |
597 | #ifdef DEBUG_TCH |
|
669 | #ifdef DEBUG_TCH | |
@@ -600,8 +672,15 void BP2_set( float * compressed_spec_ma | |||||
600 | #endif |
|
672 | #endif | |
601 | // S34 |
|
673 | // S34 | |
602 | aux = sqrt(compressed_spec_mat[i*NB_VALUES_PER_SPECTRAL_MATRIX+16]*compressed_spec_mat[i*NB_VALUES_PER_SPECTRAL_MATRIX+21]); |
|
674 | aux = sqrt(compressed_spec_mat[i*NB_VALUES_PER_SPECTRAL_MATRIX+16]*compressed_spec_mat[i*NB_VALUES_PER_SPECTRAL_MATRIX+21]); | |
|
675 | if (aux != 0.) { // no division by 0. | |||
603 | cross_re = compressed_spec_mat[i*NB_VALUES_PER_SPECTRAL_MATRIX+17] / aux; |
|
676 | cross_re = compressed_spec_mat[i*NB_VALUES_PER_SPECTRAL_MATRIX+17] / aux; | |
604 | cross_im = compressed_spec_mat[i*NB_VALUES_PER_SPECTRAL_MATRIX+18] / aux; |
|
677 | cross_im = compressed_spec_mat[i*NB_VALUES_PER_SPECTRAL_MATRIX+18] / aux; | |
|
678 | } | |||
|
679 | else | |||
|
680 | { | |||
|
681 | cross_re = 0.; | |||
|
682 | cross_im = 0.; | |||
|
683 | } | |||
605 | lfr_bp2[i*NB_BYTES_BP2+17] = (uint8_t) (cross_re*127.5 + 128); // Shift and cast into a 8-bit uint8_t (0, ..., 255) with rounding |
|
684 | lfr_bp2[i*NB_BYTES_BP2+17] = (uint8_t) (cross_re*127.5 + 128); // Shift and cast into a 8-bit uint8_t (0, ..., 255) with rounding | |
606 | lfr_bp2[i*NB_BYTES_BP2+27] = (uint8_t) (cross_im*127.5 + 128); // Shift and cast into a 8-bit uint8_t (0, ..., 255) with rounding |
|
685 | lfr_bp2[i*NB_BYTES_BP2+27] = (uint8_t) (cross_im*127.5 + 128); // Shift and cast into a 8-bit uint8_t (0, ..., 255) with rounding | |
607 | #ifdef DEBUG_TCH |
|
686 | #ifdef DEBUG_TCH | |
@@ -610,8 +689,15 void BP2_set( float * compressed_spec_ma | |||||
610 | #endif |
|
689 | #endif | |
611 | // S35 |
|
690 | // S35 | |
612 | aux = sqrt(compressed_spec_mat[i*NB_VALUES_PER_SPECTRAL_MATRIX+16]*compressed_spec_mat[i*NB_VALUES_PER_SPECTRAL_MATRIX+24]); |
|
691 | aux = sqrt(compressed_spec_mat[i*NB_VALUES_PER_SPECTRAL_MATRIX+16]*compressed_spec_mat[i*NB_VALUES_PER_SPECTRAL_MATRIX+24]); | |
|
692 | if (aux != 0.) { // no division by 0. | |||
613 | cross_re = compressed_spec_mat[i*NB_VALUES_PER_SPECTRAL_MATRIX+19] / aux; |
|
693 | cross_re = compressed_spec_mat[i*NB_VALUES_PER_SPECTRAL_MATRIX+19] / aux; | |
614 | cross_im = compressed_spec_mat[i*NB_VALUES_PER_SPECTRAL_MATRIX+20] / aux; |
|
694 | cross_im = compressed_spec_mat[i*NB_VALUES_PER_SPECTRAL_MATRIX+20] / aux; | |
|
695 | } | |||
|
696 | else | |||
|
697 | { | |||
|
698 | cross_re = 0.; | |||
|
699 | cross_im = 0.; | |||
|
700 | } | |||
615 | lfr_bp2[i*NB_BYTES_BP2+18] = (uint8_t) (cross_re*127.5 + 128); // Shift and cast into a 8-bit uint8_t (0, ..., 255) with rounding |
|
701 | lfr_bp2[i*NB_BYTES_BP2+18] = (uint8_t) (cross_re*127.5 + 128); // Shift and cast into a 8-bit uint8_t (0, ..., 255) with rounding | |
616 | lfr_bp2[i*NB_BYTES_BP2+28] = (uint8_t) (cross_im*127.5 + 128); // Shift and cast into a 8-bit uint8_t (0, ..., 255) with rounding |
|
702 | lfr_bp2[i*NB_BYTES_BP2+28] = (uint8_t) (cross_im*127.5 + 128); // Shift and cast into a 8-bit uint8_t (0, ..., 255) with rounding | |
617 | #ifdef DEBUG_TCH |
|
703 | #ifdef DEBUG_TCH | |
@@ -620,8 +706,15 void BP2_set( float * compressed_spec_ma | |||||
620 | #endif |
|
706 | #endif | |
621 | // S45 |
|
707 | // S45 | |
622 | aux = sqrt(compressed_spec_mat[i*NB_VALUES_PER_SPECTRAL_MATRIX+21]*compressed_spec_mat[i*NB_VALUES_PER_SPECTRAL_MATRIX+24]); |
|
708 | aux = sqrt(compressed_spec_mat[i*NB_VALUES_PER_SPECTRAL_MATRIX+21]*compressed_spec_mat[i*NB_VALUES_PER_SPECTRAL_MATRIX+24]); | |
|
709 | if (aux != 0.) { // no division by 0. | |||
623 | cross_re = compressed_spec_mat[i*NB_VALUES_PER_SPECTRAL_MATRIX+22] / aux; |
|
710 | cross_re = compressed_spec_mat[i*NB_VALUES_PER_SPECTRAL_MATRIX+22] / aux; | |
624 | cross_im = compressed_spec_mat[i*NB_VALUES_PER_SPECTRAL_MATRIX+23] / aux; |
|
711 | cross_im = compressed_spec_mat[i*NB_VALUES_PER_SPECTRAL_MATRIX+23] / aux; | |
|
712 | } | |||
|
713 | else | |||
|
714 | { | |||
|
715 | cross_re = 0.; | |||
|
716 | cross_im = 0.; | |||
|
717 | } | |||
625 | lfr_bp2[i*NB_BYTES_BP2+19] = (uint8_t) (cross_re*127.5 + 128); // Shift and cast into a 8-bit uint8_t (0, ..., 255) with rounding |
|
718 | lfr_bp2[i*NB_BYTES_BP2+19] = (uint8_t) (cross_re*127.5 + 128); // Shift and cast into a 8-bit uint8_t (0, ..., 255) with rounding | |
626 | lfr_bp2[i*NB_BYTES_BP2+29] = (uint8_t) (cross_im*127.5 + 128); // Shift and cast into a 8-bit uint8_t (0, ..., 255) with rounding |
|
719 | lfr_bp2[i*NB_BYTES_BP2+29] = (uint8_t) (cross_im*127.5 + 128); // Shift and cast into a 8-bit uint8_t (0, ..., 255) with rounding | |
627 | #ifdef DEBUG_TCH |
|
720 | #ifdef DEBUG_TCH |
General Comments 0
You need to be logged in to leave comments.
Login now