Forum: Digitale Signalverarbeitung / DSP / Machine Learning fft, dsp und Co.


von Matthias K. (kannichauch)


Lesenswert?

Hallo

Um eins gleich klarzustellen:
Ich hab keine Ahnung davon.

Und deswegen lese ich u.a. das:

http://www.sprut.de/electronic/pic/16bit/dsp/fft/f...

An einer Stelle hör ich aber auf und frage mich,
wie kann man ein Sample in der Phase schieben?
Vielleicht einfach dem Sample einen anderen Zeitpunkt zuweisen?

Wie bekommt man die relevanten Teile einer Welle in die Filter, da
zumindest nach meiner Vermutung die Positionen in der Nähe des
Nulldurchgangs nicht oder nur schlecht verwertet werden können.
Oder werden Differenzen in den samples ausgewertet anstatt absoluter
Werte, ähnlich einer Beschleunigung von Masse, bzw, einer Steilheit in
der Kurve?
Dann müsste es auch eine Normalisierung geben, wegen Rundungsfehlern.

Was ist eine ganze relevante Welle?
Wird ein Bruchteil einer Welle vielleicht als kleinerer Ausschlag
gewertet?

Ich fände es klasse, wenn ich eines Tages etwas in Assembler machen
könnte, um FFT's von Audiospektren zu erstellen.

Das man irgendwo C-Routinen kopieren kann, ist jetzt nicht von
Interesse.

Vielen Dank für erläuternde Hinweise ohne höhere Mathematik.

MfG
Matthias

von DH1AKF W. (wolfgang_kiefer) Benutzerseite


Lesenswert?

Richtiger Link:
http://www.sprut.de/electronic/pic/16bit/dsp/fft/fft.htm

Matthias K. schrieb:
> wie kann man ein Sample in der Phase schieben?
> Vielleicht einfach dem Sample einen anderen Zeitpunkt zuweisen?

Richtig! Jedem Zeitpunkt ist ein Abtastwert (sample) zugeordnet.
Die Samples werden höchstens mit einem konstanten Faktor multipliziert 
(Skalierung).
Das abtastende System kann nur zufällig Maxima, Minima oder 
Nulldurchgänge erfassen. Diese später zu rekonstruieren, erfolgt durch 
trigonometrische Funktionen und Mathematik...

Im Prinzip wird die Eingangsspannung in zeitlich gleichmäßigen Abständen 
gemessen, und diese Messwerte in n Speichern festgehalten. Nach n 
Messungen erfolgt die Berechnung, es entstehen neue Werte. Dabei finden 
(meist) nur Multiplikationen und Additionen statt.

Die neuen Werte repräsentieren das auszugebende Signal.
Dann beginnt das Spiel erneut.

von Mark B. (markbrandis)


Lesenswert?

Matthias K. schrieb:
> Ich fände es klasse, wenn ich eines Tages etwas in Assembler machen
> könnte, um FFT's von Audiospektren zu erstellen.
>
> Das man irgendwo C-Routinen kopieren kann, ist jetzt nicht von
> Interesse.

FFT Routinen in Assembler gibt es natürlich ebenfalls schon lange. Die 
Entscheidung ob man etwas Fertiges nimmt oder selbst programmiert ist 
bei so essenziellen Dingen wie einer FFT vollkommen unabhängig von der 
Programmiersprache.

von Christoph db1uq K. (christoph_kessler)


Lesenswert?


von W.S. (Gast)


Lesenswert?

Matthias K. schrieb:
> wie kann man ein Sample in der Phase schieben?
> Vielleicht einfach dem Sample einen anderen Zeitpunkt zuweisen?

Falsch.

Ein Verschieben in der Zeit schafft nur einen konstanten Versatz. Das 
Verschieben in der Phase ist was anderes, denn es betrifft ja de Phase 
und nicht eine konkrete Zeit.

So rein theoretisch (macht ja keiner..) könnte man ein Signal ja nicht 
kartesisch mit X und  Y (X=Zeit, Y=Elongation) beschreiben, sondern mit 
Phase und Amplitude. Dann könnte man einfach auf die Phase was addieren 
und dann das Ergebnis wieder in X und Y zurückwandeln. ist aber nur ein 
Gedankenspiel zur guten Nacht...

W.S.

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.