MirekCz napisał:
NIGDY nie robisz skalowania.
[...]
Robiac "moja" metoda dodawania i "ucinania" do pasma mamy 200+200=400 , 400>255 wiec wynik=255
To co proponujesz to naprostszy sposób na przesterowanie. Jak ktoś robi fuz do gitary to może jest to ok, ale na pewno nie przy odtwarzaniu mowy, muzyki itp.
MirekCz napisał:
Robiac metoda dodawania analogowego (zakladajac ze napiecie wyjsciowe ma byc w przedziale 0-5V a wartosc 200 po DAC to ~4V)
4V+4V=8V ? (przy maksymalnym napieciu przewidzianym 5V)
Oczywiście, że trzeba odpowiednio stłumić oba sygnały, tak żeby suma mieściła się w zakresie. Nie widzę w tym nic dziwnego/niezwykłego.
MirekCz napisał:
Mozesz mi wytlumaczyc jak to ma dzialac? Czy moze wartosc analogowa tez mamy przeskaloawc? (co w sumie wychodzi na to samo co przeskalowanie wartosci cyfrowej, ale uzycie 9 bitowego przetwornika DAC)
Aplitudowo wychodzi to samo, ale jakościowa różnica jest duża (zwłaszcza przy niskich rozdzielczościach). Analogowe tłumienie nie powoduje zmniejszenia dynamiki/rozdzielczości sygnału (oczywiście w pewnych rozsądnych granicach wyznaczonych przez szumy).
MirekCz napisał:
ja przerabialem cyfrowe dodawanie dzwieku w praktyce. Przy 8 kanalach takie "skalowanie" dzwieku doprowadzalo do tego, ze nawet po rozregulowaniu glosnosci na maksa dzwiek byl cichy (a do tego bylo sporo szumow).
A nie przyszło ci do głowy, żeby przygotować próbki z większą amplitudą sygnału ?
MirekCz napisał:
Dodawanie dzwieku i jego "przycinanie" (przy czym najpierw dodajesz je jako liczba 16bitowa a dopiero po zsumowaniu wszystkich sygnalow je przycinasz do 8bitowej wartosci) dawalo znakomite rezultaty. Po prostu gdy dzwieki staja się takie, ze wychodza poza skale, to glosniki najwyrazniej daja ostro czadu i twoje ucho czy tak nie wylapie takich niuansow. Poza tym (jezeli nie nagrywales dzwiekow BARDZO, BARDZO glosno) to bardzo maly promil probek po zsumowaniu dochodzi do granicznej wartosci
Widzisz i tu dochodzimy do sedna sprawy. Ja tak nagrywam dźwięki, aby miały max. amplitudę pik-pik ok 90% zakresu. Aby odtworzyć dwa dźwięki bez przesterowań twoją metodą należałoby je tak nagrać, żeby ich sumaryczna amplituda nie przekraczała zakresu, czyli np. amplituda p-p każdego z nich była <50% zakresu. To w praktyce oznacza, że zostaną nagrane z rozdzielczością mniejszą o 1 bit. Przy rozdzielczości przetwornika 8-bitów oznacza to nagranie dzwięku z 7-bitową rozdzielczością, spadek jakości dzwięku będzie wyraźnie słyszalny.
W mojej metodzie jeden dźwięk jestem w stanie odtworzyć z pełną dostępną rodzielczością (dopiero przy dwóch rozdzielczość każdego z nich spadnie o połowę). Oczywiście gdybym miał za dużo miejsca w pamięci to pewnie przechowywałbym dźwięki z rozdzielczością 16-bitową i nie zawracałbym sobie d... skalowaniem. Ale w tej chwili próbuję przy pomocy atmega8 jednocześnie ściągać i odtwarzać w tle głównej aplikacji dwa równoległe strumienie dźwiękowe pobierane z zewnętrznego dataflasha i ograniczenie ilości przepływających w ciągu sekundy danych jest dla mnie dość istotne.