RegistrierenRegistrieren   LoginLogin   FAQFAQ    SuchenSuchen   
Fourier-Analyse-Programm für Wave-Dateien
 
Neue Frage »
Antworten »
    Foren-Übersicht -> Sonstiges
Autor Nachricht
Bobo



Anmeldungsdatum: 16.06.2005
Beiträge: 13

Beitrag Bobo Verfasst am: 15. Jan 2006 23:27    Titel: Fourier-Analyse-Programm für Wave-Dateien Antworten mit Zitat

Wie der Name des Topics schon sagt: Ich suche ein Programm bei dem ich Wave-Dateien mittels Fourieranalyse in ein Frequenzspektrum zerlegen kann. Momentan habe ich Hobbybox V5.1. Allerdings hat Hobbybox nur FFT, was ja verschwendetes Potential in meinem Fall wäre: Man kann die Wave-Datei fast unabhänigig der Zeit durchanalysieren (solange es keinen Tag dauert ist es in ordnung Augenzwinkern ).
Was ich also such ist ein Programm mit einer "echten" Fourier-Analyse.
DADiSP hat zwar so eine, aber ich muss mir das wav-modul kaufen, wenn das programm so etwas machen soll (~paar 100§ - für meine Zwecke (Facharbeit) ungeeignet).
Wenn ein ein Freeware-Programm kennt, das so etwas kann, wäre ich euch sehr dankbar, wenn ihr mir sagt wo ich es finden kann.

Gruß Sascha

_________________
Die Luftfeuchtigkeit ist schuld!
bishop
Moderator


Anmeldungsdatum: 19.07.2004
Beiträge: 1133
Wohnort: Heidelberg

Beitrag bishop Verfasst am: 16. Jan 2006 00:23    Titel: Antworten mit Zitat

hmh ich meine, dass audacity sowas kann. Es ist opensource, und daher freeware und zumindest stimmt der Eintrag in der feature List eher hoffnugsvoll
Zitat:
Analyse

* Spectrogrammmodus um die Frequenzen anzuzeigen
* Plot Spectrum Befehle für eine genauere Frequenzanalyse


gruß, bishop

_________________
Ein Physiker ist jemand, der über die ersten drei Terme einer divergenten Reihe mittelt
schnudl
Moderator


Anmeldungsdatum: 15.11.2005
Beiträge: 6979
Wohnort: Wien

Beitrag schnudl Verfasst am: 16. Jan 2006 09:35    Titel: Re: Fourier-Analyse-Programm für Wave-Dateien Antworten mit Zitat

Bobo hat Folgendes geschrieben:
Was ich also such ist ein Programm mit einer "echten" Fourier-Analyse.
Gruß Sascha

Ist denn die FFT keine "echte" Fourieranalyse ? Es wird nur sehr trickreich vorgegangen und der diskrete Charakter der Abtastwerte herangezogen. Aber soviel ich weiss, liefert die FFT keine anderen Ergebnisse, als Du durch eine "echte" FT erreichen könntest. Denn auch dafür liegen Deine Werte von der wav-Datei wohl nur als Abtastwerte mit einem fixen Abtastintervall vor (?), weswegen Hr. Shannon grüssen lässt...

_________________
Wenn du eine weise Antwort verlangst, musst du vernünftig fragen (Goethe)
as_string
Moderator


Anmeldungsdatum: 09.12.2005
Beiträge: 5785
Wohnort: Heidelberg

Beitrag as_string Verfasst am: 16. Jan 2006 09:48    Titel: Antworten mit Zitat

Darüber bin ich auch gestolpert. Leider bin ich da auch nicht so der Spezialist, aber so weit ich weiß bekommt man da die selben Werte, nur eben schneller. Und das eben, so wie schnudl sagt, dass der Algo. eben die Tatsache mit den diskreten Werten ausnutzt.
Allerdings, was mir immer wieder Kopfzerbrechen bereitet:
Eigentlich ist so ein Audiosignal ja eine einzige Funktion von einer einzigen Variable. Eigentlich müßte ich ja nach einer Fourier-Transformation wieder eine Funktion von einer Variable (diesmal der Frequenz, nicht mehr der Zeit) bekommen, also das Spektrum.
Aber: Wenn ich mir die Frequenzanalyser in diesen Programmen anschaue sehe ich ja ein nach der Zeit sich änderndes Spektrum. Hä? Was ist das denn??? Werden da die Schwingungen in einzelne Zeitscheiben zerhackt und für jede einzeln ein Spektrum erstellt? Wie lange sind denn die Scheiben und wie viele Werte sind denn dann da drin? Gut, könnte man sich vielleicht überlegen, wenn man einen "Cut-off" bei, sagen wir mal so 20Hz macht und so. Aber bei diesen Programmen kann man das doch nicht einstellen, oder? Und wenn man das dann wirklich quantitativ verwenden wollte, sollte man solche Details schon wissen, denke ich.
Vielleicht wäre es besser, wenn Du ein eigenes kleines Programm schreibst. Solche .wav-Dateien sind ja extrem einfach aufgebaut (immer ein Byte-Paar zu einem 16-bit-Wert zusammenfassen und schon hast Du Dein Sample. Komplizierter wird's erst, wenn man noch die Samplefrequenz herausfinden muß aus der Datei...). Wenn Du die passend in ein Array einliest und eine Numerik-Bibliothek nimmst, die sicherlich alle eine FFT beinhalten, dann kannst Du damit mit wenigen Zeilen Code ein Spektrum erstellen (oder halt mehrere, wenn Du das auch in Stücke aufteilst). Dann kannst Du wenigstens mit Sicherheit sagen, was da genau transformiert worden ist etc. Und Bibliotheken gibt's wie Sand am Meer, ich glaube auch viele freie.

Gruß
Marco
dachdecker2
Administrator


Anmeldungsdatum: 15.06.2004
Beiträge: 1174
Wohnort: Zeppelinheim / Hessen

Beitrag dachdecker2 Verfasst am: 16. Jan 2006 11:27    Titel: Antworten mit Zitat

Bei der Fourieranalyse muss man einstellen, wie lang die Periode, die in den Frequenzbereich transformiert werden soll, ist. Möglich sind alle Potenzen von 2. Die Frequenzauflösung ist so groß, wie die Samplezahl in der transformierten Periode. Die größte Frequens entspricht dabei Sapmlerate/2 und die Schrittweite ist Samplerate/Samplezahl_pro_periode.

Es ist nicht ganz so, dass FFT "nur" schneller ist als FT. FFT transformiert kann abgetastete Signale transformieren, FT ist nur für kontinuierliche Signale geeignet. Ein Kontinuierliches Signal lässt sich ohne Probleme in das abgetastete Signal umwandeln, da dazu nur informationen weggelassen werden brauchen. Aus dem Grun bekommt man das ursprüngliche Signal nie wieder aus dem agetasteten Signal zurück und deswegen ist auch der Rechenaufwand zur FFT deutlich kleiner als der für FT.

Ich weiß nicht, ob das bereits berücksichtigt wurde, aber ich schreibs mal dazu. Fourieranalyse ist eigentlich nur für periodische Vorgägne geeignet. Man kann daher unter Umständen "unschöne" Kurven im Frequenzbereich erhalten. Als Lösung bietet sich an, das Eingangssignal (die Wave-Datei) mit einer sogenannten Fensterfunktion, günstig ist zum Beispiel



zu multiplizieren. smile

_________________
Gruß, dachdecker2

http://rettedeinefreiheit.de
dermarkus
Administrator


Anmeldungsdatum: 12.01.2006
Beiträge: 14788

Beitrag dermarkus Verfasst am: 16. Jan 2006 11:45    Titel: Antworten mit Zitat

Zum Namen: FFT heißt "fast fourier transformation" und ist für die meisten praktischen Anwendungen nichts anderes als ein effizienter Algorithmus, um die Fouriertransformation durchzuführen.

@as_string: Wenn man sich sowas selber programmiert, wird man sich zu dem Zweck wohl aus den Bibliiotheken eben so einen FFT-Algorithmus suchen.
--------------------------------------

@Bobo: Dein Programm hat also eine echte Fourier-Analyse.

Falls Dir die Benutzeroberfläche dieses Programms nicht komfortabel genug ist, kommt vielleicht auch DITON infrage: LINK (runterscrollen auf ca. Seitenmitte).
Dies dürfte allerdings keine freeware, sondern shareware sein, die du 1 Woche lang (gemessen ab Installationszeitpunkt) kostenlos benutzen kannst. Vielleicht genügt das für die Zwecke deiner Facharbeit.

Falls dir dein Programm nicht schnell genug sein sollte, hilft es vielleicht, deine wav-Dateien in kleinere Stücke zu schneiden. Mindestens das ist mit audacity (siehe bishop) sicher kein Problem.


Zuletzt bearbeitet von dermarkus am 16. Jan 2006 11:46, insgesamt einmal bearbeitet
schnudl
Moderator


Anmeldungsdatum: 15.11.2005
Beiträge: 6979
Wohnort: Wien

Beitrag schnudl Verfasst am: 16. Jan 2006 11:45    Titel: Antworten mit Zitat

Zitat:
Aus dem Grun bekommt man das ursprüngliche Signal nie wieder aus dem agetasteten Signal zurück und deswegen ist auch der Rechenaufwand zur FFT deutlich kleiner als der für FT


Ist zwar schon einige Jährchen her seit ich das in der Schule gelernt habe, aber ist dies nicht doch der Fall wenn das abzutastende Signal auf f/2 bandbegrenzt ist , wobei f die Abtastfrequenz ist ?
Es ist glaube ich so, dass das Frequenzspektrum eines abgetasteten Signals mit der Abtastfrequenz periodisch ist. Daher muss ein Anti-Aliasing Filter vorgespannt werden, um Artifakte zu vermeiden. Zb. kann man durch Abtasten einer Sinzusschwingung mit einer zu langsamen Frequenz ohne weiteres die Frequenz der n-fachen Grundfrequenz bekommen. Daher ist die Bandbegrenzung praktisch enorm wichtig.

Frage: Ist dies gegeben, so sollte die Rücktransformation für die diskreten Zeiten aber wieder die ursprünglichen Werte ergeben - oder ?

_________________
Wenn du eine weise Antwort verlangst, musst du vernünftig fragen (Goethe)
dachdecker2
Administrator


Anmeldungsdatum: 15.06.2004
Beiträge: 1174
Wohnort: Zeppelinheim / Hessen

Beitrag dachdecker2 Verfasst am: 17. Jan 2006 00:04    Titel: Antworten mit Zitat

Eine Wave-Datei und ihre Fouriertransformation sind identisch, nur in verschiedenen Bereichen dargestellt. Was sich nicht rekonstruieren lässt, ist der von Quantisierung und Abtastung verursachte Informationsverlust - und wenn man FFT anwenden will, kommt man um Abtastung und Quantisierung nicht herum.


Das Problem bei der Abtastung ist, dass dem Signal nachher nicht mehr anzusehen ist, welche Frequenz abgetastet wurde. Um dieses Problem zu beherrschen, muss festgehalten werden, in welchem Bereich das Quellsignal lag. Im Normalfall ist das der Bereich 0 bis halbe Samplefrequenz, man kann sich je nach Anwendung aber auch für Bereiche außerhalb der Samplefrequenz entscheiden, muss aber statt dem Tiefpass einen Bandpass in dem Entsprechendem Bereich der Abtastung vorschalten und bei der Rekonstruktion den Umstand berücksichtigen, dass das Signal unterabgetastet ist, und demnach nicht so einfach in einen Digital-Analogwandler geschickt werden kann.

Aliasing bedeutet, dass Frequenzen, die größer als die halbe Samplefrequenz sind, beim Rekonstruieren (Abspielen) in dem Frequenzbereich 0 bis Samplerate/2 hinein verschoben werden. Den Antialiasingfilter, den man zur Einhaltung des Abtasttheorems (auch Shannontheorem genannt) vor die Abtastung schaltet, hängt nicht mit der Fouriertransformation zusammen, sondern mit der Abtastung. Das Aliasing muss vor der Abtastung durch Unterdrückung hoher Frequenzen (z.B. mit einen Tiefpass) ausgeschlossen werden.

_________________
Gruß, dachdecker2

http://rettedeinefreiheit.de


Zuletzt bearbeitet von dachdecker2 am 18. Jan 2006 10:43, insgesamt einmal bearbeitet
Bobo



Anmeldungsdatum: 16.06.2005
Beiträge: 13

Beitrag Bobo Verfasst am: 18. Jan 2006 01:37    Titel: Linienspektrum Antworten mit Zitat

Mach ich irgendwas falsch??? Ich krieg einfach kein Linienspektrum hin. Man müsste ehr von Schalldruckmaxima bei bestimmten Frequenzen reden... nicht umbedingtdas was ich wollte.
Liegt es 1) daran dass man an den Einstellung rumschrauben muss oder 2) dass es nicht geht.
Wenn 1) der Fall ist, dann sagt mir bitte wie es hinbekomm.
Bei 2) wäre ich schon neugierig warum es nicht geht.
Danke

edit: Natürlich muss noch erwähnt sein, dass die Wave-Datei ein Gitarrenklang ist.

_________________
Die Luftfeuchtigkeit ist schuld!
dachdecker2
Administrator


Anmeldungsdatum: 15.06.2004
Beiträge: 1174
Wohnort: Zeppelinheim / Hessen

Beitrag dachdecker2 Verfasst am: 18. Jan 2006 10:39    Titel: Antworten mit Zitat

Scharfe Peaks kannst du nur erhalten, wenn die betreffenden Schwingungen genau n (eine Ganze Zahl) mal in die Analyseperiode passen. Wenn es nicht genau aufgeht, zeigt sich das durch ein "Breitlaufen" des Spectrums. Das von mir angesprochene "Fenster" könnte auch ein bisschen Abhilfe schaffen.
_________________
Gruß, dachdecker2

http://rettedeinefreiheit.de
Gast






Beitrag Gast Verfasst am: 18. Jan 2006 22:43    Titel: Antworten mit Zitat

Jetzt krieg ich sowas raus...
Ich hab ein Intervall kopiert und aneinandergereiht. Die Grundfrequenz ist 200Hz. Dass ich noch eine "Grundfrequenz von 50Hz habe, liegt wahrscheinlich daran dass ich nicht 100% das Intervall getroffen hab.
Was optimal für mich wäre, ist wenn ich in einem Programm ein Intervall auswählen kann und dieses Programm dann eine FFT durchführt, indem es so tut als würde sich dieses Intervall ewig wiederholen (Dann hat es auch genug Messpunkte). Das Ergebnis dieser Analyse wird dann in einem Diagramm angezeigt, in dem man angeben kann bis zu welcher Frequenz das Diagramm angegeben wird. Ich würde nämlich gerne eine lineare Anzeige verwenden, wenn aber das Diagramm bis 11000Hz oder 21000Hz geht, dann wird eine Grundfrequenz von ~ 150Hz leicht unübersichtlich.
Die Krönung des ganzen Wäre, wenn dieses Programm direkt hinter dem ausgewählten Diagramm ein weiter der gleichen Länge hernimmt um eine weiter FFT durchzuführen und dann ein weiteres Intervall hernimmt usw. Die Frequenzspektren werden dann zu einem Wasserfalldiagramm aneinandergereiht. Ich brauch nämlich Bilder für meine Facharbeit und in einem solchen Wasserfalldiagramm kann man schön zeigen, dass die Oberschwingungen relativ schnell abklingen.
Außerdem möchte ich die Effekt des Flageolet-tons zeigen und den Einfluss des Ortes an dem man die Saite der Gitarre anzupft und den Einfuss des Zupfens selber (Plektron/Fingernagel/Finger // Auch hierführ wäre das Wasserfalldiagramm hilfreich).
Danke Sascha



spectrum.zip
 Beschreibung:

Download
 Dateiname:  spectrum.zip
 Dateigröße:  48.83 KB
 Heruntergeladen:  524 mal

dermarkus
Administrator


Anmeldungsdatum: 12.01.2006
Beiträge: 14788

Beitrag dermarkus Verfasst am: 19. Jan 2006 02:21    Titel: Antworten mit Zitat

Hallo Sascha,

einer Deiner Wünsche erinnert mich an etwas, das ich in DITON gesehen habe, und was auch sicher in dem superkomfortablen Shareware-Programm CoolEdit
http://www.pctipp.ch/downloads/dl/14320.asp integriert ist:

Eine Darstellung mit der y-Achse als Frequenzachse und der x-Achse als in Echtzeit durchlaufende Zeitachse, bei der man das, was man in ein Mikrophon spricht oder hineinmusiziert (das an den Computer angeschlossen ist), in Echtzeit fouriertransformiert und dargestellt wird. Natürlich abspeicherbar und wiederholt abspielbar.

Gruß, dermarkus
Holly
Gast





Beitrag Holly Verfasst am: 19. Jan 2006 12:44    Titel: Antworten mit Zitat

Hallo dermarkus Wink !

Der Link ist echt genial und brauchbar!


Danke


Holly Gott
Neue Frage »
Antworten »
    Foren-Übersicht -> Sonstiges