Az a rossz hír, hogy az időben folytonos függvény nem létezik.
Nekem korszerű számítógépem van, van benne hardware-es lebegőpontos FPU, szóval létezik az. ;) Jó, tudom, a mantissza nem végtelen hosszú, cserébe mondjuk a DAC-nak sem végtelen nagy a felbontása.
A digitális jeleknél még nincs kondenzátor, csak a DAC után.
Oh... Én eddig úgy tudtam, számítógépekkel meg lehet oldani differenciál-egyenleteket, vagy lehet velük Fourier-transzformálni. Mondom, korszerű számítógépem van, javaslom neked is az áttérést abakuszról! :)
Tulajdonkáppen azt mondod, hogy pl. 48000 -> 48020 Hz-es órajelek esetén ilyen arányban konvertálsz. Tehát látod az névleges órajelet és megméred, hogy a rendszeredben ez úgy viselkedik, mintha 48020 lenne.
Alakul ez, a megértés csíráját vélem felfedezni. Sok lehetőség van. Mondjuk mindkét gépen van NTP, s ennélfogva van sejtésük a gépeknek, mennyi is az az 1 másodperc. Megméri az adó is, a vevő is a mintavételi frekvenciát, ami nominálisan 48 kHz, a valóságban meg annyi, amennyit mér. Áttolja az adó a sajátját a hálózaton. A hangot folytonos függvénnyé leképezi, ez megoldható FFT-vel, meredek sávszűrővel, azaz 20 kHz fölött minden együttható 0, majd inverz FFT, de bárhogy, esetleg akárhogy. Utána az adó és vevő mintavételi frekvenciájának arányában módosítja az elvi 48 kHz-es mintavételt, ezzel csinál resampling-ot, majd ezt küldi a DAC-ra. De persze ugyanerre vezet, ha az adó minden mintát ns felbontással időbélyeggel lát el, létrehozzuk a folytonos időfüggvényt, amelybe belemintavételez a DAC. Nyilván folytonos függvény nincs a memóriában, az interpolációt vagy valós időben kell csinálni - a CPU-nak más dolga is van, így ez mikrokontrollerrel menne, de nagyobb gépen nem -, tehát előre, bufferbe is kiszámolható a resampling eredménye.
Tehát így van, semmi akadálya, hogy 47993 Hz-es mintavételezésű jelet 48022 Hz-cel újra mintavételezzünk. Előnye, hogy megtehetjük 44100 Hz-cel is, ha az esik jól.
Természetesen a buffer elején egy fázistolás jelen van, ami abból jön, az előző buffer végénél hol tartottunk a mintavételezésnél, nyilván nem ugorhatunk bufferenként nulla fázistolásra, mert akkor bufferenként ugrani fog a jel.