![]() |
Wav Dateien
Ich habe ein grunsetzliches Problem. In einer Wav Datei werden die analogen Töne Digital gespeichert. Ein Anloger Ton besteht aus der Tonhöhe (Frequenz) und der Lautstärke (db).
Denn ganzen Forumsbeiträgen endnehme ich, dass eine Furiertransformation für Datenumwandlung -> WAV analog erforderlich sein soll ? Warum ? |
Re: Wav Dateien
Wie kommst du auf diese Idee? Wenn du eine Wave-Datei abspielen willst, muss nur der Datenstrom in der richtigen Geschwindigkeit an die Lautspeicher gegeben werden. Die einzelnen Spannungswerte stehen in der Datei, daraus ergibt sich automatisch die Tonhöhe.
Ich verstehe nicht so ganz wo dein Problem dabei ist. Eine Fourier-Transformation ist dafür nicht nötig. Gruss Thorsten |
Re: Wav Dateien
Ein analoger Ton besteht garantiert nicht aus einer Frequenzangabe, sondern aus einem undiskreten Wert, der die Oszillation der Membran angibt. Ein digitaler Ton ist im Prinzip das gleiche, nur dass du da diskrete Werte hast, also immer einzelne Abtastwerte in einem bestimmten Abstand. (der Samplingrate)
Eine Fourier-Transformation brauchst du nur, wenn du die durchschnittlichen Frequenzanteile einer gewissen Anzahl von Abtastwerten ermitteln willst. |
Re: Wav Dateien
Zu erstmal besten Dank für die Antworten.
Problemumriss: Kann mir jemand helfen, was und wie wird in einer .Wav Datei gespeichert. Ich möchte den Inhalt einer .WAV Datei nach der Häufigkeit einzelner Frequenz und der jeweiligen Lautstärke (dB) auswerten. Alle mir bekannten Frequenzanlyser (auch Nero Waveedit, Audcaity, Studio Programme aus dem LINUX Bereich auf Jack basierend ) zeigen nicht die Frequenz der Wav Datei, sondern die vom Soundchip generierte Frequenzverlauf an. So werden Oberfrequenzen über 20 000 kHZ angezeigt, die das Mikrofon überhaupt nicht aufnehmen konnte, das gilt auch für den Tieftonbereich von unterhalb 150 Hz (wahrscheinlich wird Netzbrummen selbst von meiner hochwertigen Soundkarte mit angezeigt). Die Bass DLL ist zwar interesant, hört aber bei einer Samplerate von 44,1 kHz und 16 Bit auf. Ich sample mit 48 bzw. 96 kHz (wegen dem cutten von Audiomaterial) und einer Bittiefe von 24 Bit. Zudem stört mich der Begriff der durchschnittlichen Amplitude, was auf eine Näherungsberechnung der Lautstärke (dB) schlissen läßt. M.f.G. Christoph ![]() Rolling Eyes |
Re: Wav Dateien
Das wird wohl auch nicht anders gehen, da die Frequenz nicht in der Datei steht.
Zum Format schau doch mal ![]() Gruss Thorsten |
Re: Wav Dateien
Danke für die Antwort,
Ich kannte die Seite, weis aber leider noch immer nich, aus was sich der eigentliche Datensatz(ohne Haeder) zusammensetzt.Mir ist schon klar, dass die einzlnen SampleBits aus der Frequenz und der Lautstärke bestehen müssen. Nur sind die 8Bits Lautstärke die anderen 8 bzw. 16 Bits die Frequenz ? M.f.G Christoph |
Re: Wav Dateien
Liste der Anhänge anzeigen (Anzahl: 1)
Nein, es gibt nur Spannungswerte in der Datei. Das reicht zum Abspielen.
Jetzt kommen wir wieder zu deiner Ausgangsfrage. Das was du da vorhast geht nur über eine Fourier-Transformation. Im Anhang habe ich mal eine Analyse angehängt. Diese funktioniert aber nur mit kurzen Aufnahmen! |
Re: Wav Dateien
Noch einmal:
Es steht keine Frequenz in einer Sounddatei. Eine Sounddatei besteht aus Abtastwerten. Aus der Oszillation der Membran in deinem Lautsprecher oder deinem Mikrofon. Man kann die enthaltenen Frequenzen mit mathematischen Verfahren ermitteln, aber auch nur bis zu einer gewissen Genauigkeit, in der Sounddatei stehen sie nicht drin. |
Re: Wav Dateien
Und noch eine Ergänzung:
Toninformationen (bzw. so gesehen alle Informationen, kommt auf die Interpretation an) lassen sich auf min. 2 verschiedene Arten darstellen. Das eine sind Abtastwerte auf einer Zeitachse abgetragen, das andere Amplituden und Phasen abgetragen auf einer Frequenzachse. Die beiden darstellungen lassen sich mittels Fouriertransformation ineinaner überführen, was aber auf diskreten/digitalen Systemen immer mit Verlusten einher geht. Zum einen wegen der systembedingten Ungenauigkeit in der Zahlendarstellung, zum anderen auf Grund der Natur diskreter Werte. RIFF-WAVE Dateien nutzen die erst genannte Darstellungsform zum speichern, da diese 1:1 so in einen D/A-Wandler geschoben werden kann, und somit der Ton ohne wesentlichen Rechenaufwand aus den Boxen kommt. Um also an die Darstellung im Frequenzraum zu kommen, kommst du schlicht nicht drum rum eine diskrete Fouriertransformation durchzuführen, und die von dir genannten Programme tun dies bereits auf sehr hohem Niveau. Doch trotz möglichst günstigem Windowing, einer Samplerate von 96kHz und 24 Bit Auflösung, sind die Daten immernoch diskret, und du wirst immer mit dem sog. Aliasing zu kämpfen haben (Bildung von Obertönen durch a) gewählten Bereich (Window) und b) diskrete Werte), sowie einer zwar kleinen, aber vorhandenen Ungenauigkeit. Edit: Es sind 24 Bit, 24 nicht 25 :wall: |
Re: Wav Dateien
Ich möchte euch zu nächst für eure Mühe danken.
Ich entneheme dem ganzen, dass es nicht möglich ist, eine ganz bestimmte (Brumm)frequenzspektrum aus einer .WAV Datei raus zu filtern. Mein Delphi 4 (SP2) kennt die Variant Unit nicht, wo krieg ich die her ? M.f.G Christoph |
Alle Zeitangaben in WEZ +1. Es ist jetzt 18:06 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz