Forum: Digitale Signalverarbeitung / DSP / Machine Learning Interpretation einer DFT (eher Basics)


von Andy L. (nemai)


Lesenswert?

Hi!

Obwohl ich erst letztens mit halbwegs erfolg eine Prüfung in Signal- und 
Systemtheorie geschrieben hab, brauche ich Hilfe bei der Interpretaiton 
einer DFT.

Hier der betroffene Code als Referenz. Ich habe recht stur die diskrete 
Transformation in Summenbildung umgesetzt, keinerlei FFT o.ä.
1
int  test_chars[16];
2
float  dft_values_dc_off[] = {2,12,2,-8, 2,12,2,-8, 2,12,2,-8, 2,12,2,-8};
3
4
for(count = 0; count < 16; count++)
5
  test_chars[count] = ((int)easyDFT(dft_values_dc_off,16,count))/16;

sowie
1
float easyDFT(float *values, unsigned char N, unsigned char omega){
2
  unsigned int count;
3
  float result_a = 0, result_b = 0, *temp;
4
  temp = values;
5
  
6
  for(count = 0; count < N; count++){
7
    result_a += *temp * cos(2*PI*omega/N*count);
8
    temp++;
9
  }
10
  for(count = 0; count < N; count++){
11
    result_b += *values * sin(2*PI*omega/N*count);
12
    values++;
13
  }
14
  return sqrt(result_a*result_a+result_b*result_b);
15
}

Die DFT macht 16 Punkte. Wenn ich mir jetzt über ein Display als 
Balkengrafik die Werte von test_chars, also die durch 16 geteilten Werte 
der Transformation, anschaue, zeigt es mir bei n=0 den Gleichanteil von 
2. Das find ich schon mal toll.
Jetz hab ich noch zwei weitere Balken: '5' bei n=4 und '4' bei n=12. Der 
nicht genannte Rest zw. n=0 und n=15, jeweils inklusive, ist 0.

Jetzt stelle ich mir vor, dass die Messwerte, die ich aktuell noch fest 
in dft_values_dc_off vorgebe, einen Sinus beschreiben mit der Periode 
4*T wobei T die Samplingzeit ist. Dann liegen sie ja entweder immer im 
Nulldurchgang oder einem Max/Min.
Was ist jetzt aber der Wert bei n=12? Ist das der Aliasing Wert der 
komplexen Frequenz von n=-4? Denn -4 + 16 wäre ja gerade 12. Ist das 
das, was das Nyquist Theorem zu beachten gibt?

Wenn das zutrifft eine weitere Frage: Muss ich 16 Punkte transformieren, 
um danach nur 8 nutzen zu können?

Falls alles nicht zutrifft, würde ich mich über eine Klarstellung freuen 
:)

von Bodo (Gast)


Lesenswert?

Christopher L. schrieb:
> Gleichanteil
nö , das ist der Anteil von 0 ... 1/8 fs

>der Wert bei n=12?
Spielgelfrequenz infolge der Unterabtastung mit fs/2 < f(x)

> Muss ich 16 Punkte transformieren
Nein

Bei der FFT fallen die Punkte an, daher werden sie mit ausgegeben

bei der DTF brauchst Du sie nicht.

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.