Wie bekommme ich aus gespeicherten Rohdaten im I²S Format (2 Kanäle á 16 Bit, signed, left justified) eine abspielbare Audio-Datei? Lassen sich unkompromierten Daten in einem Container (.ogg?) verpacken? Oder geht es nicht ohne Codec wie FLAC oder Vorbis? Gibt es evtl. passende Pakete für Octave oder SciLab?
Du kannst einfach ein WAV-File daraus machen. Das File-Format ist ziemlich einfach. Es besteht nur aus einem Header und dann den Rohdaten. Es gibt 8- und 16-bit, sowie Mono und Stereo. Bei Bedarf kannst Du das Wav-File mit einem beliebigen Kodierer in MP3 oder OGG wandeln. BTW: Ich nehme an, es geht um dein Ultraschallprojekt. Welches Mikrophon verwendest du?
Hans schrieb: > Du kannst einfach ein WAV-File daraus machen. Das File-Format ist > ziemlich einfach. Es besteht nur aus einem Header und dann den Rohdaten. > Es gibt 8- und 16-bit, sowie Mono und Stereo. Bei Bedarf kannst Du das > Wav-File mit einem beliebigen Kodierer in MP3 oder OGG wandeln. Das ist so nicht ganz richtig dargestellt. Was du hier beschreibst, ist PCM-Wav, also ein Spezialfall von Wav für unkomprimierte Daten. Sozusagen der historische Urgrund des Wav-Formats. So aber natürlich genau passend für das Problem des TO. Man sollte aber auch erwähnen, dass Winzigweich schon damals im letzten Jahrtausend viel weitsichtiger war als viele OSS-Projekte es heute sind und eine Art Escape von den trivialen PCM-Daten von Anfang an vorgesehen hat, die FCC-ID. D.h.: Ein Wav-Container kann im Prinzip jedes Audiozeugs beinhalten, auch das, was heute "High-End" ist. Theoretisch muss dazu nur die FCC-ID bei Microsoft registriert werden, damit es auch formal "offiziell" wird. Keine Ahnung, ob das entsprechende Registrierungsverfahren heute überhaupt noch existiert... Aber egal, Fakt ist jedenfalls, dass es etliche offiziell registrierte FCC-IDs tatsächlich gibt, die eben NICHT PCM-Wav sind. Das sollte man beim Programmieren immer im Hinterkopf haben, wenn man mit Wav-Dateien hantiert...
Hans schrieb: > Welches Mikrophon > verwendest du? Knowles FG-23629 Elektret mit selbstgebauten Verstärker zur Frequenzganganpassung. Hans schrieb: > Octave: wavwrite wavwrite und wavread kennt meine 5.1 Installation nicht, dafür audiowrite und audioread, die können auch WAV-Format. Danke.
Ich würde einen I2S-Core in ModelSIM einladen und per file write speichern. Mit C müsste es auch leicht zu machen sein. I2S(nach SPEC) enthält uncodierte signed Daten in PCM. Du musst nur schauen, wie es mit den Rohdaten aussieht und diese gespeichert wurden. U.U. gibt es einen offset gegenüber dem WS.
Burkhard K. schrieb: > ie bekommme ich aus gespeicherten Rohdaten im I²S Format (2 Kanäle á 16 > Bit, signed, left justified) eine abspielbare Audio-Datei? Mit Audacity Datei/Importieren/Rohdaten https://www.audacityteam.org/download/
c-hater schrieb: > Man sollte aber auch erwähnen, dass Winzigweich schon damals im letzten Es war Electronic Arts..
GEKU schrieb: > Mit Audacity Datei/Importieren/Rohdaten Mein Audacity kann keine I2S-Daten importieren. Rohdaten im CSV-Format geht. Das ist aber etwas anderes.
Vielen Dank für die Tipps und Hinweise. Bis ich die Rohdaten habe, muss ich noch etwas basteln. Bis dahin eine kleine Spielerei mit Downchirps (hyperbolisch vs. exponentiell) in Octave.
Es ist besser, wenn Du ein Semikolon an die Zeilenenden machst, sonst läuft dein Output über. Mit sound(sig,fab) kann man das Signal hörbar machen.
1 | fab=19200; |
2 | |
3 | t = [0:0.001:10.239]; |
4 | figure(1); |
5 | plot(t,((32-e)*e.**(-t))+e+40,t,(16./(t+0.5))+40); |
6 | hchidx = (16./(t+0.5)).+40; |
7 | hchirp = cos(hchidx.*(2*pi).*t); |
8 | echidx = ((32-e)*e.**(-t))+e+40; |
9 | echirp = cos(echidx.*(2*pi).*t); |
10 | |
11 | figure(2); |
12 | plot(t,echirp, t,hchirp); |
13 | |
14 | audiowrite('eh_chirp.wav', transpose([hchirp;echirp]), fab, 'BitsPerSample', 16); |
15 | |
16 | figure(3); |
17 | plot(t,echirp.-hchirp, t,hchirp.-echirp); |
18 | audiowrite('ehdelta_chirp.wav', transpose([hchirp-echirp;echirp-hchirp]), fab, 'BitsPerSample', 16); |
19 | |
20 | sound(echirp,fab); |
Analogmann schrieb: > Mein Audacity kann keine I2S-Daten importieren Audacity kann neben Textdatei (CSV) auch "Binäre Dateien" importieren.
Wo ich das gerade lese: GEKU schrieb: > Audacity kann neben Textdatei (CSV) auch "Binäre Dateien" importieren. Wie muss das Format aufgebaut sein? In der Audacity Doku ist kein Hinweis oder Beispiel dafür. (Bäuchte einen einfachen Analogdatenabspieler)
Hein schrieb: > Wie muss das Format aufgebaut sein? Dafür gibt es viele Möglichkeiten, aus denen du beim Import frei wählen kannst. Siehe Anhänge...
IFF schrieb: > Es war Electronic Arts.. Nö, von denen stammte nur das Grundgerüst des Containers. Die konkrete Ausprägung der Fileformate stammt von den jeweiligen Lizenznehmern. Im Falle von Wav, Anim und Avi halt von Microsoft.
c-hater schrieb: > aus denen du beim Import frei wählen > kannst. ... und musst. Bisher habe ich keine Möglichkeit gefunden, eine Defaulteinstellung für den Import vorzugeben. Die Samplingrate ist zwar frei wählbar, aber trotzdem steht in der Maske immer 44100Hz. Da ich mit 50kHz oder 100kHz arbeite, muss ich dieses Feld bei jedem Import neu anfassen.
:
Bearbeitet durch User
Warum machst Du nicht einfach alles in Octave? .. wavread ... o.ä.
Hans schrieb: > .. wavread ... o.ä. Weil der TE (angeblich) einen I2S-Datenstrom hat und der ist nicht so direkt zu importieren.
c-hater schrieb: > Dafür gibt es viele Möglichkeiten, aus denen du beim Import frei wählen > kannst. Kann der auch ASCII lesen? Ich hatte das auch bereits einmal probiert, komme aber nicht weiter. Hat wer mal ein Beispiel für ein konkretes Datenformat oder Rohdatenfile und der dazu passenden Einstellung des Importfilters? Ich hätte gerne so etwas als WAV: 4564, 2342 2344, 123 ... , ... also zweireihig direkt aus Excel, gfs mit Semikolon, wenn sein muss.
Tobias N. schrieb: > Kann der auch ASCII lesen? Nein. > Ich hätte gerne so etwas als WAV: > > 4564, 2342 > 2344, 123 > ... , ... > > also zweireihig direkt aus Excel, gfs mit Semikolon, wenn sein muss. Dann musst du es aus Excel halt im Binärformat exportieren. Dazu sind nur sehr wenige Zeilen VBA-Code nötig. Ungefähr 5... Mit ein paar Zeilen mehr könnte man dann allerdings auch gleich direkt aus Excel ein *.wav speichern... Man muss halt einfach nur generell programmieren können und die VBA-Doku lesen.
Jürgen S. schrieb: > Weil der TE (angeblich) einen I2S-Datenstrom hat und der ist nicht so > direkt zu importieren. Warum "(angeblich)"? Ich schreibe tatsächlich den Datenstrom an den Codec 1:1 mit. Soweit ich sehe, besteht Octave's audioread() auf einem Container, Audacity importiert auch Rohdaten. Import mit fread() ginge sicher - aber das Handling in Audacity (z.B. beim Zuschneiden) ist deutlicher einfacher.
>Soweit ich sehe, besteht Octave's audioread() auf einem Container, >Audacity importiert auch Rohdaten. Du musst ja nicht audioread(...) nehmen. Mit fread(...) kann man ja beliebige Binärdaten lesen, also auch Deine I2S Daten: https://octave.org/doc/v4.2.1/Binary-I_002fO.html
c-hater schrieb: > Mit ein paar Zeilen mehr könnte man dann allerdings auch gleich direkt > aus Excel ein *.wav speichern... > > Man muss halt einfach nur generell programmieren können und die VBA-Doku > lesen. Wenn man es programmieren muss, braucht es auch das VBA nicht. Ich bezog mich auf den scheinbar ein fachen Vorschlag von oben.
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.