Differences

This shows you the differences between two versions of the page.

Link to this comparison view

ps:labs:01 [2020/10/28 17:38]
ionut.gorgos
ps:labs:01 [2022/10/04 15:16] (current)
ionut.gorgos
Line 1: Line 1:
 ===== Laboratorul 01. ===== ===== Laboratorul 01. =====
  
-În acest laborator ne vom obișnui cu OCTAVE ​și vom face câteva procesări de semnal simple. Majoritatea tehnicilor de procesare de semnal pot fi executate ca operații pe vectori și matrici, deci OCTAVE ​este o unealtă foarte folositoare pentru a face aceste operații.+În acest laborator ne vom obișnui cu MATLAB ​și vom face câteva procesări de semnal simple. Majoritatea tehnicilor de procesare de semnal pot fi executate ca operații pe vectori și matrici, deci MATLAB ​este o unealtă foarte folositoare pentru a face aceste operații.
  
-Pentru ​acest laborator s-avut ca referință tutorialul (acum am trecut la Octave) [[https://​web.archive.org/​web/​20180417185102/​http://​uk.mathworks.com/​help/​pdf_doc/​matlab/​getstart.pdf | de aici]]+Pentru a obține o licență MATLAB, urmați ghidul{{:ps:​labs:​ghid_matlab.pdf|}}
  
-Octave poate fi downloadat de aici: [[https://www.gnu.org/software/octave/download.html Octave]]+Pentru acest laborator s-a avut ca referință tutorialul:[[https://web.archive.org/web/20180417185102/http://uk.mathworks.com/​help/​pdf_doc/​matlab/​getstart.pdf ​de aici]]
  
 Urmărind capitolul 1 (Quick Start), haideți să facem următoarele exerciții. Urmărind capitolul 1 (Quick Start), haideți să facem următoarele exerciții.
Line 20: Line 20:
 2. Vectori 2. Vectori
  
-Semnalele pot fi reprezentate ca secvențe de valori, unde în OCTAVE ​se face, de obicei, prin vectori sau matrici. Să începem cu vectorii.+Semnalele pot fi reprezentate ca secvențe de valori, unde în MATLAB ​se face, de obicei, prin vectori sau matrici. Să începem cu vectorii.
  
 Pentru a genera un vector de valori date, putem scrie pur și simplu ceva de genul: Pentru a genera un vector de valori date, putem scrie pur și simplu ceva de genul:
Line 27: Line 27:
   * Creați un vector cu 7 elemente de unu (folosind funcția '​ones'​),​ iar apoi multiplicați-l cu o constantă. Afișați rezultatul.   * Creați un vector cu 7 elemente de unu (folosind funcția '​ones'​),​ iar apoi multiplicați-l cu o constantă. Afișați rezultatul.
   * Creați un vector de 5 valori aleatoare folosind funcția '​rand'​. Introduceți în consolă 'help rand' pentru a găsi cum să o utilizați. ​   * Creați un vector de 5 valori aleatoare folosind funcția '​rand'​. Introduceți în consolă 'help rand' pentru a găsi cum să o utilizați. ​
-  * Indexarea în OCTAVE ​pornește de la 1, deci puteți selecta primul element din vector folosind comanda vec1(1). De asemenea, puteți indexa părți din vector: vec1(2:3) pentru a selecta un vector format din al doilea și al treilea element din vec1. vec1(end-1:​end) selectează ultimele 2 elemente din vec1.+  * Indexarea în MATLAB ​pornește de la 1, deci puteți selecta primul element din vector folosind comanda vec1(1). De asemenea, puteți indexa părți din vector: vec1(2:3) pentru a selecta un vector format din al doilea și al treilea element din vec1. vec1(end-1:​end) selectează ultimele 2 elemente din vec1.
  
 3. Matrici 3. Matrici
Line 59: Line 59:
 Verificați funcționalitatea funcțillor '​save'​ și '​load'​ (folosind 'help load', 'help save'​). Verificați funcționalitatea funcțillor '​save'​ și '​load'​ (folosind 'help load', 'help save'​).
  
-  * Salvați variabilele pe care le-ați creat, într-un fișiser.+  * Salvați variabilele pe care le-ați creat, într-un fișier.
  
   * Ștergeți toate variabilele folosind '​clear';​   * Ștergeți toate variabilele folosind '​clear';​
Line 88: Line 88:
 9. Funcții 9. Funcții
  
-La fel ca în majoritatea limbajelor de programare, o proprietată ​interesantă este abilitatea de a apela alte funcții.+La fel ca în majoritatea limbajelor de programare, o proprietate ​interesantă este abilitatea de a apela alte funcții.
  
   * Generați un vector aleator folosind '​rand'​ și găsiți maximul (folosiți funcția '​max'​).   * Generați un vector aleator folosind '​rand'​ și găsiți maximul (folosiți funcția '​max'​).
-  * Rețineți că OCTAVE ​a fost dezvoltat pentru a fi folosit pe matrici, deci există multe modalități de a manipula matricele.+  * Rețineți că MATLAB ​a fost dezvoltat pentru a fi folosit pe matrici, deci există multe modalități de a manipula matricele.
   * Calculați suma pătratelor elementelor dintr-un vector.   * Calculați suma pătratelor elementelor dintr-un vector.
   * Puteți parcurge vectorul folosind instrucțiunea '​for'​.   * Puteți parcurge vectorul folosind instrucțiunea '​for'​.
Line 108: Line 108:
 10. Grafice 10. Grafice
  
-Graficele sunt unele dintre cele mai tari lucruri în OCTAVE, deoarece acestea ne permit să vizualizăm datele noastre.+Graficele sunt unele dintre cele mai tari lucruri în MATLAB, deoarece acestea ne permit să vizualizăm datele noastre.
  
-  * Folosiți funcția '​sin'​ pentru a genera o sinusoidă de frecvență 1 Hz peste 1 secundă (astfel încât ar trebui să obțineți o perioadă completă). Pentru asta trebuie să generați intervalul de timp peste [0 ... 1] în pași foarte mici (e.g. 0.01) și apoi să apelați funcția sin(2*pi*f*t) peste această secvență (unde f este frecvența, t este intervalul de timp, iar pi este numărul 3.1415...) pentru a obține sinusoida ca o secvență.+  * Folosiți funcția '​sin'​ pentru a genera o sinusoidă de frecvență 1 Hz peste 1 secundă (astfel încât ar trebui să obțineți o perioadă completă). Pentru asta trebuie să generați intervalul de timp peste [0 ... 1] în pași foarte mici (e.g. 0.01) și apoi să apelați funcția sin(2*pi*f*t) peste această secvență (unde f este frecvența, t este intervalul de timp, iar pi este numărul 3.1415...) pentru a obține sinusoida ca o secvență. ​Observație:​ În MATLAB NU trebuie să declarați variabila //pi// !
   * Verificați funcția '​plot'​ folosind fie 'help plot', sau chiar mai bine 'doc plot'.   * Verificați funcția '​plot'​ folosind fie 'help plot', sau chiar mai bine 'doc plot'.
   * Plotați sinusoida pe care ați făcut-o mai devreme folosind funcția '​plot'​.   * Plotați sinusoida pe care ați făcut-o mai devreme folosind funcția '​plot'​.
Line 124: Line 124:
 11. Câteva exerciții simple de procesare de semnal 11. Câteva exerciții simple de procesare de semnal
  
-Cel mai bine este să vă faceți programele ​OCTAVE ​în script-uri, astfel încât să le puteți reutiliza mai târziu. În acest fel puteți, de asemenea, să vă creați funcții proprii. Pentru acum, haideți să creăm doar niște script-uri.+Cel mai bine este să vă faceți programele ​MATLAB ​în script-uri, astfel încât să le puteți reutiliza mai târziu. În acest fel puteți, de asemenea, să vă creați funcții proprii. Pentru acum, haideți să creăm doar niște script-uri.
  
   * Creați un script nou pe care îl numiți '​basic_dsp.m',​ în care veți scrie comenzile pentru următoarele operații.   * Creați un script nou pe care îl numiți '​basic_dsp.m',​ în care veți scrie comenzile pentru următoarele operații.
Line 132: Line 132:
   * Afișați aceste trei semnale și verificați diferențele. Hint: folosiți '​figure',​ înaintea fiecărei comenzi '​plot'​ pentru a genera trei grafice diferite sau afișați-le pe toate în același grafic (sau în două grafice, unul pentru sinusoida inițială și altul pentru sinusoida rezultată).   * Afișați aceste trei semnale și verificați diferențele. Hint: folosiți '​figure',​ înaintea fiecărei comenzi '​plot'​ pentru a genera trei grafice diferite sau afișați-le pe toate în același grafic (sau în două grafice, unul pentru sinusoida inițială și altul pentru sinusoida rezultată).
  
-Ar trebui să onțineți ceva de genul:+Ar trebui să obțineți ceva de genul:
 {{:​ps:​labs:​sine2.png?​direct&​200|Figura 2}} {{:​ps:​labs:​sine2.png?​direct&​200|Figura 2}}
  
Line 158: Line 158:
 13. Column major 13. Column major
  
-OCTAVE ​stochează datele în ordine pe coloane (column major). Pentru a testa asta încercați să înmulțiți element cu element două matrici mari (N = 1000) folosind 2 for-uri. Parcurgeți matricea pe rânduri, iar apoi pe coloane. Pentru a măsura timpul puneți funcția '​tic'​ înainte, iar funcția '​toc'​ după blocul de cod pe care doriți să îl măsurați. De asemenea, calculați înmulțirea folosind operatorul '​.*'​. Observați diferențele de timp. +MATLAB ​stochează datele în ordine pe coloane (column major). Pentru a testa asta încercați să înmulțiți element cu element două matrici mari (N = 1000) folosind 2 for-uri. Parcurgeți matricea pe rânduri, iar apoi pe coloane. Pentru a măsura timpul puneți funcția '​tic'​ înainte, iar funcția '​toc'​ după blocul de cod pe care doriți să îl măsurați. De asemenea, calculați înmulțirea folosind operatorul '​.*'​. Observați diferențele de timp. 
  
  
ps/labs/01.1603899489.txt.gz · Last modified: 2020/10/28 17:38 by ionut.gorgos
CC Attribution-Share Alike 3.0 Unported
www.chimeric.de Valid CSS Driven by DokuWiki do yourself a favour and use a real browser - get firefox!! Recent changes RSS feed Valid XHTML 1.0