Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.

MATLAB i obrada zvuka

[es] :: Audio softver :: MATLAB i obrada zvuka

[ Pregleda: 5153 | Odgovora: 5 ] > FB > Twit

Postavi temu Odgovori

Autor

Pretraga teme: Traži
Markiranje Štampanje RSS

princeza
Bojana S. Lund
København

Član broj: 40786
Poruke: 4
82.143.205.*



Profil

icon MATLAB i obrada zvuka30.11.2004. u 13:56 - pre 236 meseci
Imam zadatak da u MATLAB-u realizujem 3-way digital dividing network, odnosno za pocetak recimo samo digitalni niskopropusni filter koji ce da filtrira zvuk sa analog audio input. Jel' radio neko nekad nesto slicno? Koristim zvucnu karticu Wave/824 firme Gadget Labs koja ide uz rack-mount patch box (www.gadgetlabs.org). Totalni sam duduk sto se tice obrade zvuka, nekoliko stvari mi nije jasno (moze biti da su pitanja koja postvaljam totalno nebulozna ali reflektuju moje, nazalost, trenutno ne veliko znanje iz oblasti):
1. da li je svaki input signal sa zvucne wave formata?
2. kako MATLAB procita relevantne parametre (sample rate, bits per sample, channels of audio)?
3. da li MATLAB uopste moze da radi realtime obradu zvuka?

Hvala unapred za svaki savet, sugestiju.

 
Odgovor na temu

milanche
San Francisco

Član broj: 2447
Poruke: 1200
*.3.133.130.ptr.us.xo.net.



+1001 Profil

icon Re: MATLAB i obrada zvuka30.11.2004. u 18:49 - pre 236 meseci
Citat:
princeza: Imam zadatak da u MATLAB-u realizujem 3-way digital dividing network, odnosno za pocetak recimo samo digitalni niskopropusni filter koji ce da filtrira zvuk sa analog audio input. Jel' radio neko nekad nesto slicno?


Predpostavljam da je rec o DSP kursu. Preporucujem ti Butterworth-ove filtre za
low-pass (shelving) filter. Imaju vrlo ravnu frekventnu karakteristiku u bandpass
domenu, i vrlo dobar slope na granicama opsega. Za audio aplikacije je vrlo dobar,
i ako se implementira u IIR konfiguraciji sa float point koeficijentima dosta je stabilan
(nema oscilovanja).

U Matlabu imas gotove funkcije 'butter' koje ti za zadate parametre cutoff frekvencije
(relativno u odnosu na Fs) i slabljenja u bandstop regionu izbacuje float vrednosti
koeficijenata za zadati red IIR filtra. Neko iskustvo pokazuje da su filtri 6-tog ili 8-og
reda sasvim zadovoljavajuci (cuje se vec i i 4-ti red).

Ako je u pitanju neka merna primena gde ti treba ocuvana faza, morala bi da
upotrebis FIR filter (semplujes impulsni odziv idealnog low-pass filtra) pa radis
konvoluciju (overlapp-add ili overlapp-save ili neku drugu brzu metodu). Ovo trosi
mnogo CPU ciklusa za mnozenja, tako da moze i da ispadne da nije bas real-time.

Citat:
Koristim zvucnu karticu Wave/824 firme Gadget Labs koja ide uz rack-mount patch box (www.gadgetlabs.org).

Manje-vise nebitno, sve danasnje kartice su standardizovane tako da podrzavaju
uglavnom iste opcije na isti nacin. Dokle god je izolovana opcija (samo snimanje
ili samo playback) u pitanju, ne bi trebalo da ima vece razlike. Ako je rec o simultanom
snimanju i playback-u, onda treba videti da li je kartica full duplex i obavezno
raditi posao na sto brzoj masini sa dosta memorije.

Citat:
1. da li je svaki input signal sa zvucne wave formata?

U principu zvucna kartica dostavlja semplove (16-bit integers, a kod boljih zvucnih
kartica 24-bit integers). WAV fajl je kolekcija semplova kojoj predhodi header u kojem
su bitne informacije (sample rate, bits per sample, channels).

Da se ne bi mlatila sa zamkama integerske aritmetike i raznih drugih fenomena koji su
vise numerika a manje DSP, morala da za rad u Matlabu pre bilo cega prebacis ulazne
integer semplove u float domen, pa kad zavrsis filtriranje da rezultate vracas nazad u
integere.

Citat:
2. kako MATLAB procita relevantne parametre (sample rate, bits per sample, channels of audio)?

Verovatno pre snimanja moras da ih unapred zadas.

Citat:
3. da li MATLAB uopste moze da radi realtime obradu zvuka?

Moze:
http://www.mathworks.com/acces...tlab_prog/ch_imp26.html#144327

Zapamti bitnu stvar: svaka real-time obrada radi na bazi periodicne obrade manjih
kolicina semplova. To znaci da kad propustis jednu kolicinu semplova kroz filter,
trebala bi da stanja filtara (vrednosti svake z-1 celije) sacuvas. Kad stigne nova
kolekcija semplova onda ta sacuvana stanja upotrebis kao pocetno stanje filtra.

Javi kako napredujes.
 
Odgovor na temu

princeza
Bojana S. Lund
København

Član broj: 40786
Poruke: 4
82.143.205.*



Profil

icon Re: MATLAB i obrada zvuka30.11.2004. u 22:58 - pre 236 meseci
Puno ti, puno hvala! Skroz sam se zaglavila, hardver mi bas nije jaca strana. Evo medjutim jos pitanja :).

Hajde mi molim te pomozi da razjasnim jednu po jednu stvar:
1. MATLAB Software Tool koji treba da dizajniram i implementiram treba da cita audio data sa proizvoljne audio device u sistemu (audiodev info u MATLAB vraca informacije o instaliranim audio devices) u realnom vremenu, filtrira audio data i salje, na isto tako prozivoljan, output audio device.

E sad, pretpostavimo da je zvucna connected na analog input sorce (napr. mikrofon, single channel audio sorce, na Mic In ulazu ili CD player, two channels audio sorce, na internom CD In ulazu). Zvucna kartica receives analogni signal sa softverski odabranog ulaza i vrsi AD konverziju. Zvucna kartica ima programabilan generator frekvencije odabiranja. Nije mi jasno ko, kad i kako odlucuje o toj frekvenciji odabiranja???

Digital output iz ADC se salje u DSP, cija je jedna od funkcija da kompresija digital data i output iz DSP se salje na computer’s bus kao wav file. I sad dalje taj wav file je kolekcija razlicitih tipova chunks: format chunk koji sadrzi vazne parametre koji opisuju waveform, napr. sample rate i data chunk koji sadrzi waveform data.

Vazno mi je da razumem ovaj momenat zato sto mi nije jasno ako u sistemu imam vise audio device i izaberem proizvoljni input audio device, i ne znam audio sorce koji je konektovan na isti, jel’ fora da izvucem maksimum (u smislu, kartica podrzava 24-bits per sample, 48000kHz sample rate i 2 kanala, pa ja napr. kazem OK ovo je maksimum, pa cu to izabrati), ili se unapred odlucim sta je dovoljno dobro, kao sto postoji standard napr. za CD audio quality? Mislim ovo mi je malo maglovito.

2. Ceprkala sam po MATLAB-u i nasla sam tamo audiorecorder i audioplayer funkcije. Sa audioplayer se kreira audioplayer objekat za koji moze da se izabere proizvoljan input audio device, a sa metodom getaudiodata nad objektom se mogu dobiti semplovi u jednom od nekoliko formata: single, double, int8, uint8, i int16. Ja isfiltriram tako dobijene semplove (pokupim ih u default double formatu i tako ih i obradjujem, jel' to zvuci razumno, ako i jeste meni uopste ovde nije jasna prica u vezi sa tim zasto mi je vazan ovaj format), i to sam bas projektovala Butterworth filter ali reda 1 :) jer on ima nagib od 20db/dec sto se meni trazi u opisu mog projekta koji je totalno nebulozan, mogu da ti saljnem na private, jer mi je samo dat nagib u transition band, i nista vise sto je bitno za dizajn digitalnih filtara. Elem, iako ovaj IIR filtar, kao i svi ostali, jel', ima nelinearnu faznu karakteristiku, to ne promeni snimak, ali je problem sto ne mogu tako dobijeni audio data da saljem na proizvoljan output audio device sa audiorecorder, nekim cudom to nije podrzano, barem ja to ne vidim?? E sad ja sam jos malo kopala i danas sam pronasla nesto sto se zove: From wave Device i To Wave Device. To su navodno nekakvi DSP Blockset koji imaju veze sa Simulink, ali jos nisam skapirala kako to radi?

Uh toliko za sada, ako neko ima jos nesto pametno da doda, i izvadi me iz bedaka, bila bih mu neizmerno zahvalna!!
 
Odgovor na temu

milanche
San Francisco

Član broj: 2447
Poruke: 1200
*.3.133.130.ptr.us.xo.net.



+1001 Profil

icon Re: MATLAB i obrada zvuka30.11.2004. u 23:38 - pre 236 meseci
Citat:
princeza:
E sad, pretpostavimo da je zvucna connected na analog input sorce (napr. mikrofon, single channel audio sorce, na Mic In ulazu ili CD player, two channels audio sorce, na internom CD In ulazu). Zvucna kartica receives analogni signal sa softverski odabranog ulaza i vrsi AD konverziju. Zvucna kartica ima programabilan generator frekvencije odabiranja. Nije mi jasno ko, kad i kako odlucuje o toj frekvenciji odabiranja???


Ko to odlucuje i kada ? Odlucuje princeza licno, u zavisnosti od zrna graska koje zeli
da se oseti.

Teorijski, prema Nyquist-ovom kriterijumu, frekvencija odabiranja se bira tako da
bude najmanje dva puta veca od najvise spektralne komponente signala koji se
sempluje. Ako se uzme da je (sluzbeno) audio signal u opsegu 20Hz do 20kHz, znaci
da ti je dovoljna Fs = 44.1 kHz sto je CD standard. Za telefonski signal (govorni signal)
koji pokriva opseg do 4kHz, dovoljna je Fs = 8kHz. Za audio losijeg kvaliteta dovoljni
su i manji sampling rejtovi (11.025, 22.050, ili 32.0 kHz).

Za to sto ti treba, 44.1 je sasvim OK, a 48kHz je puna kapa.

Setujes jednom na pocetku snimanja i posle ne diras.

Citat:
Digital output iz ADC se salje u DSP, cija je jedna od funkcija da kompresija digital data i output iz DSP se salje na computer’s bus kao wav file. I sad dalje taj wav file je kolekcija razlicitih tipova chunks: format chunk koji sadrzi vazne parametre koji opisuju waveform, napr. sample rate i data chunk koji sadrzi waveform data.


Koje od ova dva hoces da uradis:
a) da li snimas audio u fajl jednom, pa ga posle obradis,
ili
b) obradjujes u real-time-u, sve vreme dok traje snimanje, pa rezultat obrade pises u
fajl ili
c) obradjujes u real-time-u, sve vreme dok traje snimanje, pa rezultat obrade nazad
na output zvucne kartice ?

U prvom slucaju (tj. slucaj 'a') rezultat snimanja se smesta u WAV fajl. Format WAV
fajla kako ga ti opisujes je opsta forma koja je malo komplikovanija. U praksi se koristi
najprostija, srpska seljacka pravoslavna forma u kojoj prvih 44 bajta sadrze heder,
a posle sve niz ulicu su semplovi.

U slucajevima 'b' i 'c' dobijas ciste PCM semplove (dakle nema WAV header-a, nego
samo semplovi - WAV header podrazumevas, u zavisnosti kako si setovala snimanje).

Citat:
Vazno mi je da razumem ovaj momenat zato sto mi nije jasno ako u sistemu imam vise audio device i izaberem proizvoljni input audio device, i ne znam audio sorce koji je konektovan na isti, jel’ fora da izvucem maksimum (u smislu, kartica podrzava 24-bits per sample, 48000kHz sample rate i 2 kanala, pa ja napr. kazem OK ovo je maksimum, pa cu to izabrati), ili se unapred odlucim sta je dovoljno dobro, kao sto postoji standard napr. za CD audio quality? Mislim ovo mi je malo maglovito.


Broj bitova po semplu odredjujes u zavisnosti od zeljenog odnosa najjaceg i najslabijeg
signala. Za to sto radis je sasvim dovoljno 16 bita, 24 bita igra neku ulogu u
profesionalnom studijskom snimackom radu, kao i za efekte.

(vidi temu http://www.elitesecurity.org/tema/66927/0)

Citat:
2. Ceprkala sam po MATLAB-u i nasla sam tamo audiorecorder i audioplayer funkcije. Sa audioplayer se kreira audioplayer objekat za koji moze da se izabere proizvoljan input audio device, a sa metodom getaudiodata nad objektom se mogu dobiti semplovi u jednom od nekoliko formata: single, double, int8, uint8, i int16. Ja isfiltriram tako dobijene semplove (pokupim ih u default double formatu i tako ih i obradjujem, jel' to zvuci razumno, ako i jeste meni uopste ovde nije jasna prica u vezi sa tim zasto mi je vazan ovaj format)


Bitno ti je zbog racunskih operacija koje treba da izvedes na tim semplovima.
U principu na DAC idu integerski semplovi, ali za mnozenja u okviru digitalnih filtara
mnogo bolju preciznost dobijas sa float i double vrednostima.

Citat:
i to sam bas projektovala Butterworth filter ali reda 1 :) jer on ima nagib od 20db/dec sto se meni trazi u opisu mog projekta koji je totalno nebulozan, mogu da ti saljnem na private, jer mi je samo dat nagib u transition band, i nista vise sto je bitno za dizajn digitalnih filtara.


U stvari, kad bolje razmislim, za ton blende (blago podizanje/spustanje niskih) 20dB
po dekadi je dovoljno. Za antialiasing filtre je to malo preblago (ali to verovatno nije
cilj tvog projekta).

Citat:
Elem, iako ovaj IIR filtar, kao i svi ostali, jel', ima nelinearnu faznu karakteristiku, to ne promeni snimak,


Faza je izuzetno bitna na nizim frekvencijama, jer tu uho bolje registruje fazne
razlike (zapravo na bazi fazne razlike culo sluha odredjuje lokalitete izvora zvuka),
ali nije toliko big deal, zato sto je filter nece poremetiti na neki 'opasan' nacin.
Mnogo je bitnije za precizna merenja i neke specificne algoritme.

Citat:
... ali je problem sto ne mogu tako dobijeni audio data da saljem na proizvoljan output audio device sa audiorecorder, nekim cudom to nije podrzano, barem ja to ne vidim?? E sad ja sam jos malo kopala i danas sam pronasla nesto sto se zove: From wave Device i To Wave Device. To su navodno nekakvi DSP Blockset koji imaju veze sa Simulink, ali jos nisam skapirala kako to radi?


Filter samo kreira izlazne podatke. Ti treba da se potrudis da ih uhvatis i organizujes
njihovo slanje na zvucnu karticu - to ti je deo zadatka. Drugim recima, moras da
nahranis ToWave device semplovima izaslim sa filtra.
 
Odgovor na temu

princeza
Bojana S. Lund
København

Član broj: 40786
Poruke: 4
82.143.205.*



Profil

icon Re: MATLAB i obrada zvuka06.12.2004. u 18:31 - pre 236 meseci
Jel' moze savet starijih kolega sa ETF? Na projektu koji radim imam dva supervizora, jedan od njih je akusticar, ima nekih 60-tak godina i pred penzijom je, on mi je i zadao temu. U specifikaciji filtara mi je naveo nagib od 20dB/dec, a svugde po netu se taj nagib kada su audio signali u pitanju izrazava u dB/Octave i 12 to 48dB/Octave (in power reduction). Posle je on tih 20dB/dec prepravio u 40dB/dec, i posto Kada sam ga pitala da li ova aplikacija moze da tolerise nelinearnu faznu karakteristiku on mi je rekao da moze. Medjutim, na netu sam pronasla sledece (i izvinjavam se unapred zbog engleskih termina, ali su mi oni jedino poznati, ja sam na ETF-u RTI, pa su mi ove stvari bas daleke): the ideal response of a crossover is flat across the crossover point (ovo znaci da bi napr. Butterworth, kao sto si i sam pomenuo bio dobro resenje, vec 2. red zadovoljava njegovu specifikaciju, medjutim ovo je IIR filtar i ima nelinearnu faznu karakteristiku); the introduction of any filter will introduce some shift in a signals' phase (mogu da zamislim kakav haos napravi IIR filtar sa svojom nelinearnom karakteristikom). A phase shift will affect the summation of the signals around the crossover transition! Jos uvek citam kojesta, nisam slusala nijedan DSP kurs pre, pa su mi pojmovi kao grupno kasnjenje i fazni pomeraj malo nejasni, ali kako ti reagujes u ovakvim situacijama? Ako izignorisem ono sto pise po netu (moram da uzmem u obzir da mi ovde jos nije sve jasno, moze biti da ovaj filtar unosi neznatna izoblicenja u pogledu fazne karakteristike pa je ipak dobro resenje, jer sam pronasla da se u analognoj elektronici upravo Butterworth do reda cetri koristi?) i sebi olaksam muke, pa jednostavno usvojim ono sto mi je narucilac projekta rekao, kako da argumentujem izbor filtra u izvestaju?
Uh .
 
Odgovor na temu

milanche
San Francisco

Član broj: 2447
Poruke: 1200
*.3.133.130.ptr.us.xo.net.



+1001 Profil

icon Re: MATLAB i obrada zvuka06.12.2004. u 21:11 - pre 236 meseci
Nelinearna fazna karakteristika kakvu prave IIR filtri nije toliko pogubna sama po sebi.
Najvise se ocituje na talasnim oblicima kod kojih je fazni sklad izmedju komponenti
spektra kriticno bitan (na primer pravougaoni impulsi, rampe i slicno).

Na srecu,

a) realni audio signali (muzika, govor, sumovi, praskovi i slicno) gotovo nikad
ne sadrze nista od gore navedenog - u svetu zvucnih talasa nema vojnicke
discipline, postrojavanja i slicnih stvari. Izuzetak su tonovi izrazitog attack-a, kao
sto su visoki tonovi klavira i nylon akusticne gitare, gde je bolje da je faza cistija
(bar kod snimanja semplova koji se posle trpaju u sintisajzere i ostale svirale).

b) ljudsko uho je vrlo nemarno prema faznim razlikama individualnih komponenti zvuka
usamljenog zvuka - imas za to lep primer u knjizi od Husnije Kurtovica. Izuzeci od
pravila su:
- niskofrekventne komponente zvuka cija je talasna duzina vrlo velika (reda par
metara) na koje apsorpcija i predmeti u zoni slusanja malo uticu, pa se uho tokom
evolucije istreniralo da ih ne ignorise. Ove komponente su zaduzene za docaravanje
prostora (otvoren prostor ili koncertna dvorana ili jazz klub ili ...).
Posto vec pravis low-pass filter, za ocekivati je da ce najnize komponente biti
najmanje izoblicene, posto izoblicenja rastu kad se priblizava cutoff frekvenciji.
Takodje, posto se po prirodi stvari na logaritamskoj osi nalaze u neposrednom
susedstvu, promena fazne karakteristike od frekvencije do frekvencije ce verovatno
biti izuzetno mala, tako da ce njihov fazni sklad biti vrlo verovatno potpuno
nenarusen.
Da bi cula znacaj faze na niskima, poigraj se sa prevezivanjem zvucnika - slusaj
stereo snimak, pa jedan od zvucnika prevezi tako sto ces da obrnes polaritet
kablova. Poremecaj u intenzitetu niskih se cuje odmah, iako se ista stvar desava
sa svim spektralnim komponentama.

- grupisanja sinfaznih komponenti zvuka - ako spektar signala grupises po opsezima
pa svakom opsegu shift-ujes fazu za odredjeni skokoviti iznos (ovo se nikada ne
desava kod realnih filtara, nego mora da se radi namerno), pocinju da se javljaju
neki efekti koji se koriste za pravljenje vestacke, improvizovane, nerealne, ali opet
pristojno zvucece 3D-zacije zvuka.

Posto si tako skinula ogroman teret sa nejake studenstke psihe, da vidimo sta ima da
se dalje radi sa zadatkom.

By the way, ko je 'akusticar' sa nekih 60-tak godina ko ti zadaje temu ?


 
Odgovor na temu

[es] :: Audio softver :: MATLAB i obrada zvuka

[ Pregleda: 5153 | Odgovora: 5 ] > FB > Twit

Postavi temu Odgovori

Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.