LU-DSP-b: Difference between revisions
| (48 intermediate revisions by the same user not shown) | |||
| Line 6: | Line 6: | ||
[[#Resursi | Resursi]] | |
[[#Resursi | Resursi]] | |
||
</big> |
</big> |
||
{{TodayTomorrow}} (ja ir lekcija) |
|||
[[#{{LOCALDAY2}}.{{LOCALMONTH}}.{{#sub:{{LOCALYEAR}}|2}} | Šodiena: {{LOCALDAY2}}.{{LOCALMONTH}}.{{#sub:{{LOCALYEAR}}|2|3}}]] : |
|||
[[#{{#expr:{{LOCALDAY2}}+1}}.{{LOCALMONTH}}.{{#sub:{{LOCALYEAR}}|2|3}} | Rītdiena: {{#expr:{{LOCALDAY2}}+1}}.{{LOCALMONTH}}.{{#sub:{{LOCALYEAR}}|2|3}}]] |
|||
(ja ir lekcija) |
|||
=Digitālā (ciparu) signālu apstrāde= |
=Digitālā (ciparu) signālu apstrāde= |
||
| Line 22: | Line 20: | ||
====Mājas darbi un citi iesniedzamie darbi==== |
====Mājas darbi un citi iesniedzamie darbi==== |
||
* Iesniegšanas termiņa laiks |
* Iesniegšanas termiņa laiks nozīmē ka '''uz šo datumu darbam jābūt jau gatavam''' un iesniegtam. Tātad jāiesniedz ir '''līdz IEPRIEKŠĒJĀS dienas beigām''', ja netiek noteikts cits termiņš. Piemēram, ja termiņš ir ceturtdiena, tad darbs jāiesniedz pirms tās, tātad līdz trešdienas beigām. |
||
* 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'''. |
* 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. |
* Darbi iesniedzami elektroniski, E-studijās, izņemot ja prasīts cits iesniegšanas veids. |
||
| Line 39: | Line 37: | ||
* Obligāta kursa aptaujas anketas aizpildīšana LUIS sistēmā |
* Obligāta kursa aptaujas anketas aizpildīšana LUIS sistēmā |
||
{{DarbuKavejumi}} |
|||
=Kalendārs= |
=Kalendārs= |
||
| Line 49: | Line 48: | ||
|- style='vertical-align: top;' |
|- style='vertical-align: top;' |
||
| |
| |
||
==== |
==== 4.02.26 ==== |
||
| |
| |
||
{| width='100%' style='background-color:#ddd;' |
{| width='100%' style='background-color:#ddd;' |
||
| Line 59: | Line 58: | ||
'''Lasāmviela un resursi''': |
'''Lasāmviela un resursi''': |
||
* [https://youtu.be/d3gj0t4ddPE Ievadlekcijas video ieraksts] |
|||
* [http://www.dspguide.com/pdfbook.htm DSPGuide grāmatā] 1. nodaļa. |
* [http://www.dspguide.com/pdfbook.htm DSPGuide grāmatā] 1. nodaļa. |
||
| Line 65: | Line 65: | ||
|- style='vertical-align: top;' |
|- style='vertical-align: top;' |
||
| |
| |
||
==== 18.02.22 ==== |
|||
==== 11.02.26 ==== |
|||
| |
| |
||
{| width='100%' style='background-color:#ddd;' |
{| width='100%' style='background-color:#ddd;' |
||
| Line 79: | Line 80: | ||
| |
| |
||
* '''Uzdots [[# |
* '''Uzdots [[#MD_Rnd | MD_Rnd]]''' |
||
|- style='vertical-align: top;' |
|- style='vertical-align: top;' |
||
| |
| |
||
==== 25.02.22 ==== |
|||
==== 18.02.26 ==== |
|||
| |
| |
||
{| width='100%' style='background-color:#ddd;' |
{| width='100%' style='background-color:#ddd;' |
||
| Line 98: | Line 100: | ||
** terminālī: <code>octave</code> vai <code>octave-cli</code> |
** terminālī: <code>octave</code> vai <code>octave-cli</code> |
||
* [https://www.dropbox.com/ |
* [https://www.dropbox.com/scl/fi/5ig28rks2jtavtfljybae/L03_Octave_intro.pdf?rlkey=l7kv5v90oseldhe6dj07rqkxd&raw=1 Ievads Octave], slaidi. |
||
* [https://docs.octave.org/latest/ Octave dokumentācija]. |
|||
| |
| |
||
* ''' '''Termiņš''' [[# |
* ''' '''Termiņš''' [[#MD_Rnd | MD_Rnd]]''' |
||
* '''Uzdots [[#MD_Octave | MD_Octave]]''' |
* '''Uzdots [[#MD_Octave | MD_Octave]]''' |
||
| Line 108: | Line 110: | ||
| |
| |
||
==== |
==== 25.02.26 ==== |
||
| |
| |
||
{| width='100%' style='background-color:#ddd;' |
{| width='100%' style='background-color:#ddd;' |
||
| Line 129: | Line 131: | ||
| |
| |
||
==== |
==== 4.03.26 ==== |
||
| |
| |
||
{| width='100%' style='background-color:#ddd;' |
{| width='100%' style='background-color:#ddd;' |
||
| Line 148: | Line 150: | ||
| |
| |
||
==== |
==== 11.03.26 ==== |
||
| |
| |
||
{| width='100%' style='background-color:#ddd;' |
{| width='100%' style='background-color:#ddd;' |
||
|<big>'''KD1'''</big> |
||''Attālināti'': <big>'''KD1'''</big> |
||
|} |
|} |
||
| Line 165: | Line 167: | ||
| |
| |
||
==== |
==== 18.03.26 ==== |
||
| |
| |
||
{| width='100%' style='background-color:#ddd;' |
{| width='100%' style='background-color:#ddd;' |
||
| Line 175: | Line 177: | ||
'''Lasāmviela un resursi''': |
'''Lasāmviela un resursi''': |
||
* 14.,15. nodaļas no [http://www.dspguide.com/pdfbook.htm DSPGuide grāmatas] un lekcijām. |
* 14.,15. nodaļas no [http://www.dspguide.com/pdfbook.htm DSPGuide grāmatas] un lekcijām. |
||
* [https://sengpielaudio.com/TableOfSoundPressureLevels.htm Loudness comparison chart] |
|||
* [https://qr.ae/pNnblQ What does 50dB sound like?] |
|||
| |
| |
||
| Line 183: | Line 185: | ||
| |
| |
||
==== |
==== 25.03.26 ==== |
||
| |
| |
||
{| width='100%' style='background-color:#ddd;' |
{| width='100%' style='background-color:#ddd;' |
||
|<big>'''Prakse ar Octave, skaņa'''</big> |
| <big>'''Prakse ar Octave, skaņa'''</big> |
||
|} |
|} |
||
''E-studijās video lekcija L07.'' |
|||
Praktiskā nodarbība. Izmantojot Octave, konstruēt algoritmu, kas apstrādā audio failu. |
Praktiskā nodarbība. Izmantojot Octave, konstruēt algoritmu, kas apstrādā audio failu. |
||
* Uzdevumi, Octave vidē |
* Uzdevumi, Octave vidē |
||
** |
** Izgriezt 1 sekundi no skaņas |
||
** Nospēlēt oktāvu |
** Nospēlēt oktāvu, kur katra nots ir 0.5 sekundes ilga |
||
** Atskaņot skaņu kas sastāv no 3 sinusoīdām ar maināmu frekvenci un amplitūdu |
** Atskaņot skaņu kas sastāv no 3 sinusoīdām ar maināmu frekvenci un amplitūdu |
||
** Piemērot ADSR skaņas avotam, piemēram, sinusoīdai |
** Piemērot ADSR skaņas avotam, piemēram, sinusoīdai |
||
| Line 199: | Line 203: | ||
Resursi: |
Resursi: |
||
* [https:// |
* [https://en.wikipedia.org/wiki/Envelope_%28music%29 Envelope, ADSR] |
||
* [http://digitalsoundandmusic.com/chapters/ch6/ Digital Sound and Music] - Skaņas sintēze - 6.1.7 |
* [http://digitalsoundandmusic.com/chapters/ch6/ Digital Sound and Music] - Skaņas sintēze - 6.1.7 |
||
<!-- * [https://mybudgetstudio.com/what-is-sound-envelope-adsr-explained-with-example Envelope, ADSR] (depreciated) --> |
|||
* Skaņas faili: |
* Skaņas faili: |
||
| Line 207: | Line 212: | ||
| |
| |
||
* ''' '''Termiņš''' [[#MD_Audio | MD_Audio]]''' |
|||
* Uzdots [[#MD_Synth | MD_Synth]] |
* Uzdots [[#MD_Synth | MD_Synth]] |
||
| Line 213: | Line 217: | ||
| |
| |
||
==== |
==== 8.04.26 ==== |
||
| |
| |
||
{| width='100%' style='background-color:#ddd;' |
{| width='100%' style='background-color:#ddd;' |
||
| Line 222: | Line 226: | ||
'''Lasāmviela un resursi''': |
'''Lasāmviela un resursi''': |
||
* [http://www.dspguide.com/pdfbook.htm DSPGuide |
* [http://www.dspguide.com/pdfbook.htm DSPGuide 22. nodaļa] |
||
* [https://youtu.be/Sn07AMCfaAI?si=Qh0gq93xCC6fzB3z Par skaņas ilūzijām] (Veritasium video) |
|||
* [https://cmtext.indiana.edu/acoustics/chapter1_amplitude.php Ievads dator-muzikā] - no Indiānas Universitātes. |
|||
| |
| |
||
* ''' '''Termiņš''' [[#MD_Audio | MD_Audio]]''' |
|||
|- style='vertical-align: top;' |
|- style='vertical-align: top;' |
||
| |
| |
||
==== |
==== 15.04.26 ==== |
||
| |
| |
||
{| width='100%' style='background-color:#ddd;' |
{| width='100%' style='background-color:#ddd;' |
||
| Line 245: | Line 250: | ||
|- style='vertical-align: top;' |
|- style='vertical-align: top;' |
||
| |
| |
||
==== |
==== 22.04.26 ==== |
||
| |
| |
||
{| width='100%' style='background-color:#ddd;' |
{| width='100%' style='background-color:#ddd;' |
||
| Line 262: | Line 267: | ||
| |
| |
||
==== |
==== 29.04.26 ==== |
||
| |
| |
||
{| width='100%' style='background-color:#ddd;' |
{| width='100%' style='background-color:#ddd;' |
||
| Line 278: | Line 283: | ||
| |
| |
||
==== |
==== 6.05.26 ==== |
||
| |
| |
||
{| width='100%' style='background-color:#ddd;' |
{| width='100%' style='background-color:#ddd;' |
||
| Line 297: | Line 302: | ||
| |
| |
||
==== |
==== 13.05.26 ==== |
||
| |
| |
||
{| width='100%' style='background-color:#ddd;' |
{| width='100%' style='background-color:#ddd;' |
||
| Line 315: | Line 320: | ||
* [https://www.youtube.com/watch?v=NvRKtdrssFA Intro to FIR] |
* [https://www.youtube.com/watch?v=NvRKtdrssFA Intro to FIR] |
||
* [https://www.youtube.com/watch?v=uNNNj9AZisM&ab_channel=Phil%E2%80%99sLab FIR Filter Design] (Phil's Lab) |
|||
| |
| |
||
| Line 321: | Line 327: | ||
| |
| |
||
==== |
==== 20.05.26 ==== |
||
| |
| |
||
{| width='100%' style='background-color:#ddd;' |
{| width='100%' style='background-color:#ddd;' |
||
| Line 330: | Line 336: | ||
* [http://www.dspguide.com/CH21.PDF DSPGuide 21. nodaļa - filtru salīdzinājums] |
* [http://www.dspguide.com/CH21.PDF DSPGuide 21. nodaļa - filtru salīdzinājums] |
||
| |
| |
||
<!-- |
|||
|- style='vertical-align: top;' |
|- style='vertical-align: top;' |
||
| |
| |
||
==== |
==== 27.05.26 ==== |
||
| |
| |
||
{| width='100%' style='background-color:#ddd;' |
{| width='100%' style='background-color:#ddd;' |
||
| Line 342: | Line 349: | ||
| |
| |
||
--> |
|||
|- style='vertical-align: top;' |
|- style='vertical-align: top;' |
||
| |
| |
||
==== |
==== 27.05.26 ==== |
||
| |
| |
||
{| width='100%' style='background-color:#ddd;' |
{| width='100%' style='background-color:#ddd;' |
||
| Line 352: | Line 360: | ||
:Laiks: 08:30 |
:Laiks: 08:30 |
||
:Vieta: E-studijas un tiešsaiste. |
:Vieta: Kursa lekciju telpa <!--E-studijas un tiešsaiste.--> |
||
| |
| |
||
| Line 359: | Line 367: | ||
=Uzdevumi= |
=Uzdevumi= |
||
== |
==MD_Rnd== |
||
Analizēt nejaušu skaitļu (RND) un to summas histogrammu sekojošiem gadījumiem: |
Analizēt nejaušu skaitļu (RND) un to summas histogrammu sekojošiem gadījumiem: |
||
# RND |
# RND |
||
| Line 400: | Line 408: | ||
Apgūt un praktizēties Octave vides un valodas lietošanā. |
Apgūt un praktizēties Octave vides un valodas lietošanā. |
||
Pieejams e-studijās |
|||
====Uzdevums==== |
|||
Atrisināt Octave vidē sekojošus uzdevumus: |
|||
1. Izdomāt īsu bet efektīvu Octave komandu (izteiksmi), kas izmantojot dažādus operatorus 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 (tikai viena rinda vai viena kolonna) 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 <code>run faila-vārds.m</code> |
|||
* Lai rakstītu komentārus, Octave valodā jālieto <code>%</code> rindas sākumā |
|||
* Kāpināšanas operatori ir <code>^</code> un <code>.^</code> |
|||
* Transponēšanas operācija ir <code>.'</code> |
|||
* Vektora matrica ir vienas dimensijas matrica, piemēram, ar tikai vienu kolonnu vai tikai vienu rindu. |
|||
====Iesniegt==== |
|||
Risinājumu ('''md_octave.m''' failu) iesniegt e-Studijā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== |
==MD_Audio== |
||
Izmantojot Octave, konstruēt algoritmu, kas izgriež pauzes runas signālam. |
Izmantojot Octave, konstruēt algoritmu, kas izgriež pauzes runas signālam. |
||
Pieejams e-studijās |
|||
Skaņas faili, piemēram: |
|||
* [https://www.dropbox.com/s/34ait9wo4b1j1ld/test1.ogg?dl=1 test1.ogg] [https://www.dropbox.com/s/v8wyoidysq94nsh/test1.wav?dl=1 .wav] |
|||
* [https://www.dropbox.com/s/n7k971ppe1zfq9o/test2.ogg?dl=1 test2.ogg] [https://www.dropbox.com/s/vpr9dbd7famcjjk/test2.wav?dl=1 .wav] |
|||
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 <code>audioread</code> un <code>audiowrite</code> |
|||
* Vairāk informāciju par komandām var uzzināt ar <code>help nezināmā-komanda</code> |
|||
* Reizēm ir Noderīgi apskatīties uz signāla grafiku ar komandu <code>plot(matrica)</code>. Ja vēlaties apskatīt vairākus grafikus vienlaicīgi, tad pirms plot() komandas dodiet komandu <code>figure();</code> |
|||
====Iesniegt==== |
|||
Risinājumu ('''md_audio.m''' failu) iesniegt estudijās MD_Audio sadaļā. |
|||
==MD_Synth== |
==MD_Synth== |
||
Izmantojot Octave, uzrakstīt funkcijas vairākiem skaņas efektiem. |
Izmantojot Octave, uzrakstīt funkcijas vairākiem skaņas efektiem. |
||
Pieejams e-studijās |
|||
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. |
|||
* 'len' ir skaņas ilgums, sekundēs |
|||
====Uzdevumi==== |
|||
Visas funkcijas atgriež matricu ar skaņu (mono). Pašām funkcijām nav jāatskaņo, tās tikai rēķina. |
|||
# Izgriež 1 sekundi no skaņas |
|||
#* Funkcija <code>onesec(sample, fs)</code> - kas atgriež vektora matricu kas veidota no 'sample' |
|||
# Nospēlēt oktāvu: 8 skaņas no Do līdz Do, katru noti 0.25 sekundes ilgi. |
|||
#* Funkcija <code>oneoctave(fs)</code> - kas atgriež matricu ar skaņu. |
|||
# Atskaņot skaņu kas sastāv no 3 sinusoīdām ar maināmu frekvenci un amplitūdu |
|||
#* Funkcija <code>sine3(f1, f2, f3, a1, a2, a3, fs, len)</code> - kur <code>f*</code> ir frekvences un <code>a*</code> ir amplitūdas. |
|||
# Piemērot ADSR skaņas avotam, piemēram, sinusoīdai |
|||
#* Funkcija <code>adsr(sample, fs, attack, decay, sustain, release)</code> - kas pielieto ADSR "envelope" effektu signālam. "a,d,s,r" parametru summai jābūt 1. |
|||
# Izveidot sintētiskās skaņas instrumentu, pēc savas radošās izvēles. |
|||
#* Funkcija <code>mysynth(freq, fs)</code> - kas ņem vērā pamata frekvenci freq efektam un atgriež skaņas matricu. Matricas garums atkarīgs no jūsu efekta garuma. |
|||
====Resursi==== |
|||
* [https://mybudgetstudio.com/what-is-sound-envelope-adsr-explained-with-example Envelope, ADSR] |
|||
* [http://digitalsoundandmusic.com/chapters/ch6/ 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 <code>help audioplayer</code> |
|||
====Iesniegt==== |
|||
* '''md_synth.m''' failu ar visām funkcijām |
|||
* Estudijās, MD_Synth sadaļā. |
|||
====Piemēri==== |
|||
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); |
|||
==MD_Image== |
==MD_Image== |
||
Izmantojot Octave, uzrakstīt funkcijas attēlu apstrādei. |
Izmantojot Octave, uzrakstīt funkcijas attēlu apstrādei. |
||
Pieejams e-studijās |
|||
Turpmākajos uzdevumos: |
|||
* 'path' ir taciņa uz skaņas failu, iekļaujot faila vārdu. |
|||
* 'img' ir 2d matrica ar (bezkrāsainu) attēlu. Katra vērtība ir vesels skaitlis no 0 līdz 255. |
|||
* 'colorimg' ir matrica ar krāsainu RGB attēlu, līdzīgi ka IMG daļa no imread() funkcijas |
|||
====Uzdevumi==== |
|||
# Ielasīt attēlu no faila (piemēram picture.jpg) un atgriezt 2D matricu ar melnbaltu attēlu. |
|||
#* Funkcija <code>file2gray(path)</code> - kas atgriež matricu ar attēlu, ko var rādīt ar imshow(). |
|||
# Pielietot 2D konvolūciju attēlam. Funkcijai jāatgriež apstrādātais attēls. |
|||
#* Funkcija <code>filter1(img, kernel)</code> - kas atgriež matricu ar attēlu, ko var rādīt ar imshow(). |
|||
# Pārbaudīt filtra kodolu. Ko dara sekojošais filtra kodols? Uzrakstīt funkciju kas to pārbauda, un komentāros aprakstīt rezultātu. |
|||
#* Funkcija <code>test3(img)</code> - kas atgriež matricu ar attēlu pēc tā apstrādes ar sekojošu filtra kodolu h: |
|||
#* <code> h = [4 3 2; 1 0 -1; -2 -3 -4] </code> |
|||
# Atrast filtru, kas veic sekojošu uzdevumu: iezīmē attēla kontūras. |
|||
#* Funkcija <code>edgifyer(img)</code> - kur <code>img</code> ir frekvences un <code>a*</code> ir amplitūdas. |
|||
# Atrast filtru, kas veic sekojošu uzdevumu: izveido attēla "negatīvu", ņemot vērā krāsas. Piemērs [https://www.dropbox.com/s/0yki43k1i03dwpx/im_positive.jpg?raw=1 pozitīvam] un [https://www.dropbox.com/s/jfx0j9aw1g3brwl/im_negative.jpg?raw=1 negatīvam] attēlam. Piemērs ņemts no [https://www.lunapic.com/editor/premade/negative.gif Lunapic redaktora vietnes]. |
|||
#* Funkcija <code>negimage(colorimg)</code> - kur <code>img</code> ir frekvences un <code>a*</code> ir amplitūdas. |
|||
====Resursi==== |
|||
* Funkcijas attēlu lasīšanai un rakstīšanai failos: imread(), imwrite() |
|||
* Funkcija attēlu rādīšanai uz ekrāna: imshow() |
|||
* 2D konvolūciju var veikt ar conv2() funkciju. Ņemiet vērā, ka tai ir trešais parametrs, ar kuru var norādīt kā rīkoties robežgadījumos. "same" ir variants kā paturēt rezultējošās matricas izmērus tādus pat kā sākotnējai. |
|||
* Ņemiet vērā, ka ielasot attēlu no faila tam var būt '''triju krāsu komponentes''' RGB. Apstrādājot ar conv2() nepieciešams vai no to darīt katrai krāsai atsevišķi, vai melnbaltā režīmā. Te var noderēt funkcija rgb2gray() |
|||
* Ņemiet vērā, ka '''imshow()''' funkcija sagaida attēla matricas elementus |
|||
** robežās no '''0 līdz 255''' ja tiem ir '''uint8''' tips, vai |
|||
** robežās no '''0.0 līdz 1.0''', ja tie ir '''double'''. |
|||
====Iesniegt==== |
|||
* '''md_image.m''' failu ar visām funkcijām |
|||
* Estudijās, MD_Image sadaļā. |
|||
====Piemēri==== |
|||
Piemērs, kurā tiek lasīts krāsains un attēlots attēls kā melnbalts |
|||
[im, map, alpha] = imread ("lowres1.jpg"); |
|||
r = im(:,:,1); |
|||
g = im(:,:,2); |
|||
b = im(:,:,3); |
|||
y = 0.299 * r + 0.587 * g + 0.114 * b; |
|||
imshow (y) |
|||
Piemērs, kā konvertēt 2D matricu b uz tipu, ko sapratis imshow() - pie nosacījuma ka elementu vērtības ir starp 0..255 |
|||
a = uint8(b) |
|||
imshow(a) |
|||
=Resursi= |
=Resursi= |
||
| Line 568: | Line 430: | ||
* [http://www.dspguide.com/ DSP Guide] gramata tiešsaistē |
* [http://www.dspguide.com/ 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" |
:: "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" |
||
==== Octave ==== |
|||
* [https://www.dropbox.com/s/vvw92wtspjqg7ki/refcard-a4.pdf?dl=0 Octave 3.0.0 reference card] |
* [https://www.dropbox.com/s/vvw92wtspjqg7ki/refcard-a4.pdf?dl=0 Octave 3.0.0 reference card] |
||
* [https://docs.octave.org/latest/Introduction-to-Function-and-Script-Files.html Intro to function and script files] |
|||
* [https://docs.octave.org/latest/Script-Files.html Sccript files] |
|||
* [http://failiem.lv/u/suipzqt Kompleksie skaitļi DSP] |
|||
* [https://docs.octave.org/latest/Function-Files.html Function files] |
|||
* [http://failiem.lv/u/njjfvyx Kalmana filtrs] |
|||
* [http://failiem.lv/down.php?i=xigtwaj&n=dft.m DFT] |
|||
==== Furjē transformācija ==== |
==== Furjē transformācija ==== |
||
| Line 588: | Line 450: | ||
* [https://www.mathworks.com/help/matlab/ref/fft.html FFT pipemērs Matlab sistēmā] |
* [https://www.mathworks.com/help/matlab/ref/fft.html FFT pipemērs Matlab sistēmā] |
||
* [https://upload.wikimedia.org/wikiversity/en/d/dd/Octave.DFT.1.B.FFT.20170706.pdf FFT piemērs Octave sistēmā] |
* [https://upload.wikimedia.org/wikiversity/en/d/dd/Octave.DFT.1.B.FFT.20170706.pdf FFT piemērs Octave sistēmā] |
||
* [https://youtu.be/r7GdEWDHtbQ Furje transformācija, vizualizācija ar apļiem] (Smarter every day) |
|||
* [https://youtu.be/r6sGWTCMz2k But what is a Fourier series? From heat flow to drawing with circles] (3Blue1Brown) |
|||
==== FIR & IIR ==== |
==== FIR & IIR ==== |
||
Latest revision as of 19:14, 5 May 2026
Īssaites: Kalendārs | Uzdevumi | Resursi | Šodiena: 11.11.2026. : Rītdiena: 12.11.2026. (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 nozīmē ka uz šo datumu darbam jābūt jau gatavam un iesniegtam. Tātad jāiesniedz ir līdz IEPRIEKŠĒJĀS dienas beigām, ja netiek noteikts cits termiņš. Piemēram, ja termiņš ir ceturtdiena, tad darbs jāiesniedz pirms tās, tātad līdz trešdienas beigām.
- 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ā
Vienīgie attaisnojumi nerakstītam darbam, ar iespēju to rakstīt vēlāk, ir:
- dokumentētas veselības problēmas, vai arī
- dalība kādā stratēģiski valstij vai universitātei nozīmīgā pasākumā, piemēram, starptautiskās sacensībās Latvijas izlasē vai zinātniskā konferencē, vai arī
- ģimenes locekļa bēres vai cita traģēdija ģimenē.
Visos citos gadījumos par nerakstītu darbu vērtējums ir 0 punktu.
Kalendārs
| Datums | Tēma, saturs | Uzdevumi | |
|---|---|---|---|
4.02.26 |
Lasāmviela un resursi:
|
||
11.02.26 |
Lasāmviela un resursi:
|
| |
18.02.26 |
sudo apt install octave
|
| |
25.02.26 |
Lasāmviela un resursi: |
| |
4.03.26 |
Lasāmviela un resursi: |
Termiņš MD_Sys (nav jāiesniedz, tiks pārrunāts lekcijā) | |
11.03.26 |
Vidus semestra kontroldarbs KD-1. Lasāmviela un resursi:
|
| |
18.03.26 |
Digitālie filtri, kustīgā vidējā (moving average) filtrs. Lasāmviela un resursi:
|
| |
25.03.26 |
E-studijās video lekcija L07. Praktiskā nodarbība. Izmantojot Octave, konstruēt algoritmu, kas apstrādā audio failu.
Resursi:
|
| |
8.04.26 |
Audio uztvere in apstrāde Lasāmviela un resursi:
|
| |
15.04.26 |
Attēlu uztvere un apstrāde Lasāmviela un resursi: |
| |
22.04.26 |
Speciāla attēlu apstrāde. Praktiskā nodarbība. Attēlu apstrāde. |
| |
29.04.26 |
Vidus semestra kontroldarbs KD2
|
| |
6.05.26 |
Lasāmviela un resursi:
|
| |
13.05.26 |
Pratiskais darbs: Izmantojot Octave, izveidot Short-time DFT jeb spektrogrammu runas signālam.
|
||
20.05.26 |
Lasāmviela un resursi: |
||
27.05.26 |
|
Uzdevumi
MD_Rnd
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_Sys
Mērķis: Treniņš lineāru un laika invariantu sistēmu atpazīšanā un pierādīšanā.
Uzdevums
- Pierādīt, ka sekojošas sistēmas ir (vai nav) lineāras.
- Pierādīt, ka sekojošas sistēmas ir (vai nav) laika invariantas.
- y[n] = x[n] + 3
- y[n] = x[n] * x[n]
- y[n] = x[n] + x[n + 1]
Šis uzdevums paredzēts treniņam, un nav obligāti jāiesniedz.
MD_Octave
Mērķis: Apgūt un praktizēties Octave vides un valodas lietošanā.
Pieejams e-studijās
MD_Audio
Izmantojot Octave, konstruēt algoritmu, kas izgriež pauzes runas signālam.
Pieejams e-studijās
MD_Synth
Izmantojot Octave, uzrakstīt funkcijas vairākiem skaņas efektiem.
Pieejams e-studijās
MD_Image
Izmantojot Octave, uzrakstīt funkcijas attēlu apstrādei.
Pieejams e-studijās
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"
Octave
Furjē transformācija
- Furjē sērija, jebkurš signāls no sinusoīdām
- Ievada video
- Furjē transformācijas vizualizācija
- lekcija par Inverso FT (1.daļa)
- lekcija par FT (2.daļa)
- Ievads FFT, The Cooley-Tukey Algorithm
- Cooley-Tukey apraksts (Algoritmu arhīvs)
- Furje transformācija, vizualizācija ar apļiem (Smarter every day)
- But what is a Fourier series? From heat flow to drawing with circles (3Blue1Brown)
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