Forum: Digitale Signalverarbeitung / DSP / Machine Learning FFT funktioniert nicht, Werte sind klein und unrealistisch


von Herbert (Gast)


Lesenswert?

1
// FFT
2
  fract16 in[FFT_ANZ];
3
int i = 0, x;
4
      while (i < FFT_ANZ)
5
      {
6
        in[i] = float_to_fr16(((float)ADC_input_buffer[i])/((float)0x8000));
7
        i++;
8
      }
9
                  
10
      FFT(in,&out);
11
      
12
      i=0;
13
      
14
      while (i < FFT_ANZ)
15
      {
16
        x = (int)(fr16_to_float(out[i].im)*0x8000);
17
        SendIntASCII(x);
18
        UART_puts (",");
19
        i++;
20
      }
ADC_input_buffer[i] ist ein int-Array, mit 1024 Werten
Wenn wer hier den Fehler sieht, wäre ich sehr dankbar :D

Mfg Herbert

von Günter -. (guenter)


Lesenswert?

- out ist nicht deklariert, was für ein Datentyp ist das?
- Was ist denn fract16 für ein Datentyp?
- Welchen Wertebereich haben die Eingangsdaten?
- Sind die Eingangsdaten noch repräsentativ nach der float_to_fr16() 
Funktion?
- Du sendest nur die imaginären Werte raus. Kannst du von denen alleine 
erkennen das die Ergebnisse unrealistisch sind?

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.