LU-DSP-b
Īssaites: Kalendārs | Uzdevumi | Resursi | Šodiena: 16.08.24 : Rītdiena: 17.08.24 (ja ir lekcija)
Digitālā (ciparu) signālu apstrāde
LU DF bakalauru kurss.
- Pasniedzējs Leo Seļāvo [vards.uzvards @gmail.com].
Mērķi
- Iepazīties ar Digitālās Signālu Apstrādes pielietojumiem un principiem. Praktiskas darbības ar signālu apstrādi. Sistēmu Matlab un Octave iepazīšana un programmēšana tajās.
Motivācija
"Think how electronics has changed the world in the last 50 years. DSP will have the same role over the next 50 years. Learn it or be left behind!" - Steve Smith, autors "DSP Guide"
Mājas darbi un citi iesniedzamie darbi
- Iesniegšanas termiņa laiks ir 30 minūtes pirms nākamās lekcijas sākuma, ja netiek noteikts cits termiņš.
- Ja darbs tiek iesniegts ar novēlošanos, rezultāts tiek samazināts par 50%. Ja darbs iesniegts vairāk kā nedēļu pēc termiņa, pasniedzējs darbu var nepieņemt.
- Darbi iesniedzami elektroniski, E-studijās, izņemot ja prasīts cits iesniegšanas veids.
- Teksts noformējams PDF faila formātā. Piemēram MD2 fails būtu sekojošs: DSP_MD2_Vards_Uzvards.pdf
- Ja iesniedzami vairāk par vienu failu, tie arhivējami ZIP formātā, sekojoši: DSP_MD2_Vards_Uzvards.zip Atspiežot šo failu tam jārada direktorija ar tādu pašu nosaukumu, kur atrodas visi faili.
Vērtējums kursā
Kursa galējais vērtējums sastāv no sekojošām komponentēm:
- 10% - dalība lekcijās un diskusijās
- 20% - mājas darbi, praktiskie darbi un testi
- 20+20% - divi kontroldarbi semestra vidū
- 30% - rakstisks gala eksāmens
- Obligāta kursa aptaujas anketas aizpildīšana LUIS sistēmā
Kalendārs
Datums | Tēma, saturs | Uzdevumi | |
---|---|---|---|
12.02.21 |
Lasāmviela un resursi:
|
||
19.02.21 |
Lasāmviela un resursi:
|
| |
26.02.21 |
|
| |
05.03.21 |
Apskatam sitēmas f(x)=2*x, g(x)=x+5 un m(x)=x*x. Pārbaudam vai tās ir lineāras sistēmas. Lasāmviela un resursi: |
| |
12.03.21 |
Lasāmviela un resursi: |
||
19.03.21 |
Vidus semestra kontroldarbs KD-1. Lasāmviela un resursi:
|
| |
26.03.21 |
Digitālie filtri, kustīgā vidējā (moving average) filtrs. Lasāmviela un resursi:
|
| |
02.04.21 |
Brīvlaiks |
||
09.04.21 |
Praktiskā nodarbība. Izmantojot Octave, konstruēt algoritmu, kas apstrādā audio failu.
Resursi:
|
||
16.04.21 |
Audio uztvere in apstrāde Lasāmviela un resursi: |
| |
23.04.21 |
Attēlu uztvere un apstrāde Lasāmviela un resursi: |
| |
30.04.21 |
Praktiskā nodarbība. Attēlu apstrāde. |
||
07.05.21 |
Vidus semestra kontroldarbs KD2
|
KD2 | |
14.05.21 |
Lasāmviela un resursi: |
||
21.05.21 |
Pratiskais darbs: Izmantojot Octave, izveidot Short-time DFT jeb spektrogrammu runas signālam.
|
||
28.05.21 |
Lasāmviela un resursi: |
||
04.06.21 |
Lasāmviela un resursi:
|
||
10.06.21 |
|
Uzdevumi
MD1
Analizēt nejaušu skaitļu (RND) un to summas histogrammu sekojošiem gadījumiem:
- RND
- RND + RND
- RND + RND + RND + RND
Pētījumu veikt vismaz 100000 nejaušiem skaitļiem.
Ar RND saprotam funkciju, kas katrā izsaukumā atgriež nejaušu skaitli no 0 līdz 1.0.
Katram no iepriekš minētajiem gadījumiem uzrakstīt programmu, kas izrēķina un uzzīmē histogrammu.
Programmu ieteicams rakstīt Octave vidē, bet šoreiz atļauts arī kādā citā jums pazīstamā valodā.
E-studijās kā MD1 iesniegt PDF failu ar risinājumu, kurā katram no gadījumiem doti:
- Programma, kas ģenerē histogrammu
- Histogramma
- Secinājumi, kas sanāca, un kāpēc tā.
MD_Octave
Mērķis: Apgūt un praktizēties Octave vides un valodas lietošanā.
Uzdevums: Atrisināt Octave vidē sekojošus uzdevumus:
1. Izdomāt īsu bet efektīvu Octave komandu, kas izveido sekojošu matricu A:
1 3 5 7 9 11 1 4 9 16 25 36 4 8 16 32 64 128
2. Izdomāt tādas matricas B, C un D, lai tās reizinot ar A iegūst sekojošo:
- A * B = ( A kolonnu 2 un 5 summa )
- C * A = ( A matricas otrā rinda )
- D * A = ( A matrica kurā 1 un 2 rindas ir samainītas vietām )
3. Izdomāt vektora matricas S, T, V un W tādas, lai to reizinājumi būtu sekojoši:
- S * T =
1 2 3 1 2 3
- V * W =
1 1 2 2 3 3
Ieteikumi
- Risinājumus saglabāt failā md_octave.m
- Octave skriptus (faila-vārds.m failus) var darbināt ar
run faila-vārds.m
- Lai rakstītu komentārus, Octave valodā jālieto
%
rindas sākumā - Kāpināšanas operatori ir
^
un.^
- Transponēšanas operācija ir
.'
- Vektora matrica ir vienas dimensijas matrica, piemēram, ar tikai vienu kolonnu vai tikai vienu rindu.
Iesniegt
Risinājumu (md_octave.m failu) iesniegt estudijās MD_Octave sadaļā.
Risinājuma failā jābūt komentētam skriptam, kas definē visas matricas A, B, C, D, S, T, V un W.
MD_Audio
Izmantojot Octave, konstruēt algoritmu, kas izgriež pauzes runas signālam.
Skaņas faili, piemēram:
Darbības plāns:
- Ielasīt audio failu
- Izveidot filtra kodolu lai nofiltrētu augstfrekvenču troksni, "pīķus" signālā, it īpaši paužu laikā
- pielietot šo filtru izmantojot konvolūciju
- uzlikt slieksni filtrētajam audio signālam: pauzes uz 0, pārējais uz 1.
- kombinējot oriģinālo un filtrēto signālus, konstruēt jaunu signālu bez pauzēm.
Ieteikumi
- Risinājumus saglabāt failā md_audio.m
- Rakstiet kodā arī komentārus
- Audio failu var ielasīt no faila un rakstīt failā ar komandām
audioread
unaudiowrite
- Vairāk informāciju par komandām var uzzināt ar
help nezināmā-komanda
Iesniegt
Risinājumu (md_audio.m failu) iesniegt estudijās MD_Audio sadaļā.
MD_Synth
Izmantojot Octave, uzrakstīt funkcijas vairākiem skaņas efektiem.
Turpmākajos uzdevumos:
- 'sample' ir skaņas matrica (viena kolonna ar mērījumiem - "samples"). Līdzīgi kā lasīts ar audioread, bet viens kanāls.
- 'fs' ir sample-rate, piemēram 44100.
- 'length' ir skaņas ilgums, sekundēs
Uzdevumi:
- Izgriež 1 sekundi no skaņas
- Funkcija
onesec(sample, fs)
- kas atgriež vektora matricu kas veidota no 'sample'
- Funkcija
- Nospēlēt oktāvu: 8 skaņas no Do līdz Do, katru noti 0.25 sekundes ilgi.
- Funkcija
oneoctave(fs)
- kas atgriež matricu ar skaņu.
- Funkcija
- Atskaņot skaņu kas sastāv no 3 sinusoīdām ar maināmu frekvenci un amplitūdu
- Funkcija
sine3(f1, f2, f3, a1, a2, a3, fs, length)
- kurf*
ir frekvences una*
ir amplitūdas.
- Funkcija
- Piemērot ADSR skaņas avotam, piemēram, sinusoīdai
- Funkcija
adsr(sample, fs, attack, decay, sustain, release)
- kas pielieto ADSR "envelope" effektu signālam.
- Funkcija
- Izveidot sintētiskās skaņas instrumentu, pēc savas radošās izvēles.
- Funkcija
mysynth(freq, fs)
- kas ņem vērā pamata frekvenci freq efektam un atgriež skaņas matricu. Matricas garums atkarīgs no jūsu efekta garuma.
- Funkcija
Resursi
- Envelope, ADSR
- Digital sound and music - sadaļa 6.7.1 - par skaņas sintēzi.
- Ģenerēto skaņu iespējams rakstīt audio failā ar audiowrite funkciju.
- Skaņu iespējams atspēlēt arī no Octave. Sīkāk skat
help audioplayer
Iesniegt
- md_synth.m failu ar visām funkcijām
- Estudijās, MD_Synth sadaļā.
Piemērs
Piemērs, kurā tiek ģenerēts 1 sekundi garš mazās oktāvas La signāls un saglabāts kā skaņas fails
// Example, La=220Hz, 1 second fs = 44100; freq = 220; samples_per_period = fs/freq; step = 2*pi / samples_per_period; limit = fs/step; t = 0: step: limit; s = sin(t); stereo = [s', s'] audiowrite ("la.ogg", stereo, fs);
Alternatīvs risinājums šim pašam uzdevumam
fs = 44100; freq = 220; t = linspace(0, 1, fs); s = sin( t * 2*pi * freq ); stereo = [s', s'];
Veids, kā spēlēt signālu no Octave:
player = audioplayer (stereo, 44100, 8); play (player);
Resursi
Kursa materiāli
- DSP Guide gramata tiešsaistē
- "The Scientist and Engineer's Guide to Digital Signal Processing, copyright ©1997-1998 by Steven W. Smith. For more information visit the book's website at: www.DSPguide.com"
Furjē transformācija
- Ievada video
- Furjē transformācijas vizualizācija
- lekcija par Inverso FT (1.daļa)
- lekcija par FT (2.daļa)
FIR & IIR
Citi resursi
- Signals and Systems - kurss Berkeley universitātē
- Learning DSP illustrated
- Lineāras laika invariantas sistēmas @Brilliant wiki
- Laika invariantas sistēmas - videolekcija ar pierādījumu piemēriem.
- Attēlu filtru kodoli - vizuāls skaidrojums