Wav Surfer cavalcando le onde della modulazione a impulsi codificati
Il Waveform Audio File Format (estensione WAV o WAVE) permette di memorizzare in formato digitale segnali audio analogici compionati non compressi.
PS: il gioco di parole che ho scelto per dare il nome a questo mio programma fa il verso al nome che ho scelto per un altro mio progetto, Raw Cooker.
Pulse-code modulation (PCM)
Il segnale viene campionato sia in ascissa (quindi nel tempo), ad intervalli regolari (tipicamente tra gli 8000 e i 44100 Hz), sia in ordinata, convertendo la pressione sonora in valori digitali (tipicamente tra gli 8 e i 16 bit). Questa tecnica è chiamata PCM, pulse-code modulation, cioè modulazione a impulsi codificati. Il file digitale quindi, dopo un certo numero di byte riservati all'header (per la precisione 40 byte), è costituito semplicemente da una sequenza di valori che rappresentano il segnale analogico originale preso ad intervalli regolari.
Grazie al teorema del campionamento di Nyquist-Shannon sappiamo che dato un segnale con trasformata di Fourier nulla al di sopra di una certa frequenza (se non sai cosa sia la trasformata di Fourier potresti dare un'occhiata alla pagina dedicata ad un altro mio piccolo progetto, Fourier.exe) è possibile memorizzarlo senza perdita di informazioni se ci assicuriamo di campionarlo nel tempo al doppio di tale frequenza (motivo per la scelta dei 44100 Hz nei CD audio, considerando che l'orecchio umano è sensibile a frequenza tra i 20 e i 20 kHz).
Funzionalità implementate
Questo programma permette di caricare, modificare e salvare audio in formato WAV. È possibile selezionare parti del contenuto, potendo poi tagliarle, copiarle e incollarle. È inoltre possibile inserire, rimuovere o silenziare la parte selezionata. Nel caso di audio a due canali tutte queste azioni sono declinate nei vari modi possibili (solo canale sinistro, solo destro, entrambi) e sono anche disponibili funzioni per invertire o riunire i canali (per l'intero file o per la parte selezionata). È inoltre possibile visualizzare il dettaglio del segnale e la relativa trasformata di Fourier in scala logaritmica.