Calc Funktion weitergecoded - kompiliert

This commit is contained in:
Patrick Hangl
2026-01-27 16:38:58 +01:00
parent 9b09cb21fa
commit 6f52b7ace4
93 changed files with 15970 additions and 14407 deletions

View File

@@ -4,39 +4,38 @@
#include <stdint.h>
#include "signal_processing/include/signal_path.h"
// Register und Bitmasken f<EFBFBD>r Interrupts zwischen ARM und LPDSP Prozessor
// Register und Bitmasken für Interrupts zwischen ARM und LPDSP Prozessor
#define CSS_CMD 0xC00004
#define CSS_CMD_0 (1<<0)
#define CSS_CMD_1 (1<<1)
// Shared Memory von ARM und DSP definieren
#define INPUT_PORT0_ADD 0x800000 // Feste Adressen f<EFBFBD>r Eingangsdaten im Shared Memory
#define OUTPUT_PORT_ADD (INPUT_PORT0_ADD + 16) // Feste Adressen f<EFBFBD>r Ausgangsdatensdaten im Shared Memory, 16 Byte von Eingangsadresse Weg
#define INPUT_PORT0_ADD 0x800000 // Feste Adressen für Eingangsdaten im Shared Memory
#define OUTPUT_PORT_ADD (INPUT_PORT0_ADD + 16) // Feste Adressen für Ausgangsdatensdaten im Shared Memory, 16 Byte von Eingangsadresse Weg
// Structs anlegen f<>r die Signalpfade - hier werden Konfigurationen abgelegt(signal_path.h)
static SingleSignalPath corrupted_signal;
static SingleSignalPath reference_noise_signal;
static SingleSignalPath c_sensor_signal_t;
static SingleSignalPath acc_sensor_signal_t;
static volatile int16_t chess_storage(DMB:INPUT_PORT0_ADD) input_port[4]; //Array mit 4x16 Bit Eintr<EFBFBD>gen auf 2x32 Bit Registern - nur die ersten 2 werden genutzt
static volatile int16_t chess_storage(DMB:OUTPUT_PORT_ADD) output_port[4]; //Array mit 4x16 Bit Eintr<EFBFBD>gen auf 2x32 Bit Registern - alle werden genutzt
static volatile int16_t chess_storage(DMB:INPUT_PORT0_ADD) input_port[4]; //Array mit 4x16 Bit Einträgen auf 2x32 Bit Registern - nur die ersten 2 werden genutzt
static volatile int16_t chess_storage(DMB:OUTPUT_PORT_ADD) output_port[4]; //Array mit 4x16 Bit Einträgen auf 2x32 Bit Registern - alle werden genutzt
static volatile int16_t chess_storage(DMB) *input_pointer_0;
static volatile int16_t chess_storage(DMB) *input_pointer_1;
static volatile int16_t chess_storage(DMB) *output_pointer;
static volatile int16_t chess_storage(DMB) *sample_pointer;
static volatile int16_t chess_storage(DMB) sample; //Speicherplatz f<EFBFBD>r Ergebnis der calc()-Funktion
static volatile int16_t chess_storage(DMB) sample; //Speicherplatz für Ergebnis der calc()-Funktion
int main(void) {
// Enum, welcher den Ausgabemodus definiert - wird in calc()-Funktion verwendet
static OutputMode mode = OUTPUT_MODE_FIR_LMS;
// Biquad Filter f<>r C-Sensor und Acc-Sensor anlegen
// Biquad Filter für C-Sensor und Acc-Sensor anlegen
// Alle 0 bis auf b[0] -> einfacher Gain auf 0,75
double b0[5]={0.75, 0., 0., 0., 0.};
double b1[5]={0.75, 0., 0., 0., 0.};
int coefficients = MAX_FIR_COEFFS; // 64 Koeffizienten f<EFBFBD>r ANR
int coefficients = MAX_FIR_COEFFS; // 64 Koeffizienten für ANR
// Signale initialisieren, oben angelegte Structs mit Parametern f<EFBFBD>llen
// Signale initialisieren: oben angelegte Structs mit Parametern füllen
// Buffer für Delay-Line und Koeffizienten initialisieren
init(
&corrupted_signal, &reference_noise_signal, //Signal-Structs
&c_sensor_signal_t, &acc_sensor_signal_t, //Signal-Structs
b0, // Biqquad Koeffizienten C-Sensor
b1, // Biqquad Koeffizienten Acc-Sensor
2, // Sample Delay C-Sensor
@@ -47,7 +46,7 @@ int main(void) {
coefficients // Anzahl Filterkoeffizienten
);
FILE *fp1 = fopen("./simulation_data/complex_corrupted_signal.txt", "r");
FILE *fp1 = fopen("./simulation_data/complex_c_sensor_signal_t.txt", "r");
FILE *fp2 = fopen("./simulation_data/complex_noise_signal.txt", "r");
FILE *fp3 = fopen("./simulation_data/output/complex_output_simulated.txt", "w");
@@ -61,7 +60,7 @@ int main(void) {
input_port[i+1] = (int16_t) d1;
}
calc(
&corrupted_signal, &reference_noise_signal, mode, &input_port[0], &input_port[1], output_port);
&c_sensor_signal_t, &acc_sensor_signal_t, &input_port[0], &input_port[1], output_port);
for (int i=0; i<BLOCK_LEN; i++){
fprintf(fp3, "%d\n", output_port[i]);
}