Weiter kommentiert
This commit is contained in:
@@ -156,14 +156,15 @@ void static inline sig_circular_buffer_ptr_put_block(BufferPtr *buffer, int* blo
|
||||
}
|
||||
|
||||
void sig_init_preemph_coef(SingleSignalPath *signal, double b0, double b1, double b2, double a1, double a2, int scale_bits) {
|
||||
// Check first if filter is actually activated
|
||||
// Wenn b0=1 und Rest 0 -> kein Filter weil effektiv 1*Xn
|
||||
if (b0 == 1. && b1 == 0. && b2 == 0. && a1 == 0. && a2 == 0.) {
|
||||
signal->preemph_activated = 0;
|
||||
}
|
||||
else{
|
||||
signal->preemph_activated = 1;
|
||||
signal->_preemph_scale_nbits = scale_bits;
|
||||
int scale = pow(2, scale_bits) - 1;
|
||||
signal->preemph_activated = 1; // Schreibe Eintrag in Struct
|
||||
signal->_preemph_scale_nbits = scale_bits; // Schreibe Eintrag in Struct - wieviel Bits wird skaliert
|
||||
int scale = pow(2, scale_bits) - 1; //2^n -1 Skalierung
|
||||
// Skaliere Koeffizienten zu Interger und schreibe Eintrag in Struct
|
||||
signal->b_preemph[0] = b0 * scale;
|
||||
signal->b_preemph[1] = b1 * scale;
|
||||
signal->b_preemph[2] = b2 * scale;
|
||||
@@ -178,9 +179,11 @@ int sig_init_delay(SingleSignalPath *signal, int n_delay) {
|
||||
}
|
||||
|
||||
void sig_init_weight(SingleSignalPath *signal, double weight, int scale_nbits) {
|
||||
// Wenn Gewichtung 1 -> kein Effekt
|
||||
if (weight == 1.) {
|
||||
signal->weight_actived = 0;
|
||||
}
|
||||
// Wenn Gewichtung != 1 -> Zu Integer skalieren und Eintrag in Struct schreiben
|
||||
else{
|
||||
signal->weight_actived = 1;
|
||||
int scale = pow(2, scale_nbits) - 1;
|
||||
@@ -573,8 +576,6 @@ void adapt_coeffs_generic_single(BufferPtrDMB chess_storage(DMB) *ptr_fir_lms_de
|
||||
void init(
|
||||
SingleSignalPath *cSensorSignal,
|
||||
SingleSignalPath *accSensorSignal,
|
||||
//BufferPtrDMB *ptr_fir_lms_delay_line,
|
||||
//BufferPtr *ptr_fir_lms_coeffs,
|
||||
double *b_c,
|
||||
double *b_acc,
|
||||
int delay_c,
|
||||
@@ -590,19 +591,20 @@ void init(
|
||||
int scale_bits=31;
|
||||
#endif
|
||||
|
||||
// C-Sensor Initialisierung: Biquad, Delay, Weight skalieren und in Struct schreiben
|
||||
sig_init_preemph_coef(cSensorSignal, b_c[0], b_c[1], b_c[2], b_c[3], b_c[4], scale_bits);
|
||||
sig_init_delay(cSensorSignal, delay_c);
|
||||
sig_init_weight(cSensorSignal, weight_c, scale_bits);
|
||||
|
||||
// // Initialize the accSensor signal subpath
|
||||
// Acc-Sensor Initialisierung: Biquad, Delay, Weight skalieren und in Struct schreiben
|
||||
sig_init_preemph_coef(accSensorSignal, b_acc[0], b_acc[1], b_acc[2], b_acc[3], b_acc[4], scale_bits);
|
||||
sig_init_delay(accSensorSignal, delay_acc);
|
||||
sig_init_weight(accSensorSignal, weight_acc, 31);
|
||||
|
||||
// initialize the lms filter parameters
|
||||
//Mu Skalierung und in globale Variable schreiben
|
||||
int scale = pow(2, scale_bits) - 1;
|
||||
mu = lms_mu * scale;
|
||||
// initialize the fir_lms buffers
|
||||
// Buffer Initialisierung
|
||||
#if BLOCK_LEN == 1
|
||||
sig_init_buffer_DMB(&ptr_fir_lms_delay_line, fir_lms_delay_line, lms_fir_num_coeffs, MAX_FIR_COEFFS);
|
||||
sig_init_buffer(&ptr_fir_lms_coeffs, fir_lms_coeffs, lms_fir_num_coeffs, MAX_FIR_COEFFS);
|
||||
|
||||
Reference in New Issue
Block a user