www.mikrocontroller.net

Forum: Digitale Signalverarbeitung / DSP Software für DFT bzw FFT


Autor: Dominik (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo allerseits!
Ich suche für das fach Digitale Signalverarbeitung eine freeware
Software, die für vorgegebene Funktionen eine DFT bzw eine FFT
durchführt. Sowas muss es doch bestimmt geben. Bei google bin ich bis
jetzt nur auf Programme gestoßen, die z.B. ein Eingangssignal vom Mikro
transformieren.
Würde mich echt weiterbringen, wenn da jemand einen Tipp hätte.

Grüße Dominik

Autor: Thomas (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Was für Funktionen meinst du denn ?

Gruß Thomas

Autor: Dominik (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo Thomas!
Vielleicht so Grundfunktionen wie sinus, rechteck, dreieck usw, die man
dann eventuell auch noch überlagern kann. Das ganze soll mir nur beim
Verständnis von DFT helfen und zur Kontrolle von Übungsaufgaben, die
ich gerechnet habe usw.

Gruß Dominik

Autor: D.N. (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
für Linux könnte ich dir was geben was unser prof geschrieben hat

Autor: Thomas (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Für die Grundfunktionen steht die FT in jeder Mathe-Formelsammlung .....
Und da das ganze linear ist (zumindest im Systemtheoretischen
Sinn..:o)))....
Oder willst du solche Dinge wie Fenstereigenschaften etc. ausprobieren
?
Vielleicht ein kleiner Tip: Schreib die paar Zeilen für eine DFT (und
später für eine FFT) selbst und geh schrittweise durch, dann hast du
den größten Lerneffekt und weißt was du dann tust....

Gruß Thomas

Autor: Dominik (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Guten Morgen!
Erstmal danke für eure Antworten. Das Linux Programm könnte mir
eventuell schon helfen. Hab eine Knoppix Version mit der ich das dann
ausführen könnte. Wie groß ist das Programm von dir denn (D.N.)? Kann
ich das irgendwo ziehen? hab meine E-Mail oben mal angegeben.
Ja Fenstern und Aliasing und solche Geschichten würde ich gerne mit
drin haben, damit man sich diese Effekte mal an einer Hand von
Beispielen klarmachen kann.
An das selber proggen habe ich auch schon gedacht. Würde das Ganze nur
gerne vorher richtig verstanden haben, damit ich dann auch sinnvollen
Quelltext zaubere.

Gruß Dominik

Autor: D.N. (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
@Dominik

ja die Programme laufen unter knopix oder suse. Habe sie selber nur
unter suse probiert.
In den Programmen wird eine u.a komplette digitale Übertragung
simuliert. Man kann alles mögliche einstellen von Antialis.-Filter über
Abtastenfrequensen, Fenster und dessen Wirkung auf das Signal am
Ausgang. Schöne Darstellung mit Bild und Zeitbereich. Hat der Prof.
genial gemacht.

Autor: Andreas Schwarz (andreas) (Admin) Benutzerseite Flattr this
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Fuer sowas verwendet man i.d.R. Matlab, Scilab oder Octave. Kann mir
ehrlich gesagt nicht vorstellen dass das in eurer Vorlesung nicht auch
mal erwaehnt wurde.

Autor: Dominik (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Schönen guten Abend!
@ D.N.: Das hört dich ja alles ganz gut an. Also ist das irgendwie
möglich da dran zu kommen? Kannst du mir vielleicht einen Link mailen,
oder das komplette Programm, wenn das nicht zu groß ist? Das würde mir
auf jedenfall schon weiter helfen.

@ Andreas: Ja Matlab kenn ich noch aus der Regelungstechnik. Allerdings
habne wir da nie diskret, sondern nur kontinuierlich mit gearbeitet.
Habens zeitlich nichtmal bis zur digitalen Regelung geschafft gg. Wie
stellst du es denn an, wenn du ne FFT machen willst? Gibt es da in
Simulink irgendwelche Glieder, die das machen, oder Befehle für Matlab?
Is ja immer ein wenig schwer sich da alleine einzuarbeiten.

Nochmal schönen Dank für die Hilfe.

Autor: Gerrit Buhe (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo Dominik,

schau' doch mal hier:

http://www.scilab.org
http://www.octave.org

Octave ist "MATLAB-kompatibler", dafür hat Scilab mehr
Signal-Processing-Funktionen dabei. Beide Programme sind für Linux/Unix
und Windows frei herunterladbar und sehr zu empfehlen.

Viele Grüße!

Gerrit

Autor: Dominik (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo!
Habe mir Scilab jetzt mal besorget. Sieht ganz vielversprechend aus.
Bedarf allerdings erstmal ein bischen Einarbeitung, bis man sich da ein
Bild gemacht hat, was alles möglich ist.

Also danke für die Links und auch danke an die Anderen für ihre Hilfe.

Gruß Dominik

Autor: Gerrit Buhe (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo Dominik,

Test für eine erste FFT unter scilab:

fc=1e3;    //Signalfrequnez ist 1kHz
fs=8e3;    //Abtastfrequenz ist 8kHz
n=1:20e3;  //Abtastungen (n*Ts = n* 1/fs)

sig=sin(2*%pi*fc/fs*n);  //Signal im Zeitbereich

samples=length(n);  //folgende Zeilen nur für Abzissenbeschriftung
fbin=fs/samples;  //Freq.-Abstand der einzelnen FFT-Punkte für
Skalierung
fax=fbin*(-samples/2:1:samples/2-1);  //"X-Achsen"-Saklierung

plot2d(fax, 20*log10(abs(fftshift(fft(sig, -1)))), style=2); xgrid

Hoffe es hilft...

Gruß, Gerrit

P.S.
Meist ist eine Fensterung nötig, weil die zu analysierende Sequenz
nicht von minus Unendlich bis plus Unendlich vorliegt, was die FFT aber
erwartet ("Leckeffekt"). Dann ist das Bsp. wie folgt zu ergänzen:

win=window('hn', samples);
sig=sig.*win;

Autor: Dominik (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo!
Erstmal danke für die paar Zeilen, die mir auf die Sprünge geholfen
haben. Habs auch soweit nachvollziehen können, bis auf ein paar
Befehle:

- wozu dient das -1 bei fft(sig,-1)?

- wozu dient der Befehl fftshift?

- was bedeutet sig.*win?

- was bedeutet 'hn'? ist das ein Hanning Fenster?

Hoffe da kann mir nochmal einer weiter helfen.

Gruß Dominik

Autor: Gerrit Buhe (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo Dominik,

mit "help fft" bzw. "help fftshift" kannst Du beides
herausbekommen. ;o)

Kurz: "-1" steht für die Richtung der Fourier-Transformation. Das war
bisher nötig. da der Befehl "ifft" für die inverse FFT nicht
existierte (anders als in MATLAB und Octave); man mußte fft(data,1)
dafür angeben. Bisher hat man bei "fft(data)" eine Fehlermeldung
bekommen, was nun offensichtlich nicht mehr der Fall ist (hatte ich
noch nicht mitbekommen ;o).

"fftshift" klappt nur die beiden Hälften der FFT um, so daß die
Frequenz Nulll in der Mitte liegt. Bei Basisbandspektren sieht es dann
besser aus. Ohne "fftshift" liegt die Frequenz Null ganz links, die
Nyquist-Freq. in der Mitte und die Abtastfrequenz ganz rechts.

Mit "sig.*win" wird das generierte Signal (der Sinus) mit der
generierten Fensterfunktion gewichtet (multipliziert). Damit das
Element für Element erfolgt und nicht wie bei einer Matrix-Operation,
muß vor dem Operator ein Punkt stehen.
Z.B. wird bei "sig^2" die Matrix quadriert, während bei "sig.^2"
jedes Element der Matrix quadriert wird.

Ja, 'hn' steht für Hanning -> "help window" ;o).

Viel Erfolg!

Gerrit

Autor: Christian Uhl / mrtest (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo zusammen!

Ich kenne mittlerweile ein wenig Octave und damit klappt das mit der 
diskreten Faltung und Fouriertransformation soweit ganz gut.

Nachdem aber das Programm eines Professors hier so sehr gelobt wurde und 
besonders seine graphische und anschauliche Darstellung sowie sein 
Lerneffekt, haette ich auch Interesse daran bekommen...

Hat das hier von euch jemand oder kennt zumindest die Hochschule bzw. 
den Professor, der Autor der Software war / ist?

Vielen Dank
Christian Uhl

Autor: Rüdiger Knörig (sleipnir)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ich habe mal für unsere Studenten ein Octave/Matlab-Tutorial 
geschrieben, welches auch die Anwendung der FFT umreißt. Vielleicht 
hilft Dir das weiter.
http://www.nue.tu-berlin.de/teaching/praktika/mult...

Beitrag #2427022 wurde von einem Moderator gelöscht.
Autor: Zulu (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Gerrit Buhe schrieb:
> Ja, 'hn' steht für Hanning

dass das nicht aufhört, mit diesem unsinnigen Begriff "hanning".

Man spricht ja auch nicht vom "Gaussing", "Fouriering" oder "Laplacing".

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.