Jump to content
ELFORUM - Forumul electronistilor
Guest

DSP in 2020, dupa cartea lui Steven W. Smith

Recommended Posts

"The Scientist and Engineer's Guide to Digital Signal Processing" de Steven W. Smith, Ph.D. e gratuita, si poate fi download-ata sau parcursa online.  A fost chiar o perioada cand Analog Devices Inc. o distribuia ca material promotional pentru linia lor de DSP-uri.  E considerata una din cartile de referinta in DSP (Digital Signal Processing), la fel ca Proakis si Manolakis.

 

Desi are peste 20 de ani, teoria si exemplele sunt la fel de actuale.  Totusi, programele sunt in BASIC, graficele sunt desenate si neinteractive, destul de barbar pentru anul de gratie 2020!   :rade:

 

De exemplu, in capitolul 2 la pagina 27, despre The Normal Distribution, sunt desenate trei exemple pentru clopotul lui Gauss, cu valori diferite pentru /sigma si /miu, ca sa ilustreze semnificatia fizica a fiecarui parametru.  Asta ar fi fain de vazut cu niste slider-e, sa traga fiecare de ele si sa vada cum se schimba forma, graficului, nu?

 

Matlab, ar zice unii, ba Octave, ar zice altii, ca-i mai gratis.  Ba nu, zice 2020, ceva online, ca-i mai simplu si mere pana si pe telefoane!

 

"Desmos" sau "GeoGebra" ii asa.  Online si gratis.

- Desmos parca e mai simplu la share-uit ceva la repezeala, chiar si fara sa ai cont la Desmos, dar n-am gasit cum sa baga litere grecesti in formule (fara copy/paste din alta parte).

- GeoGebra e cam la fel, da' mai bengoasa la feature-uri, si are si versiune standalone, care functioneaza offline, instalata.

 

Mai departe am sa incerc niste link-uri de grafice interactive (pe tema clopotului lui Gauss de care vorbea nea Smith de la pag. 27), asa, doar de proba, sa vedem cum le randeaza Elforum.

 

GeoGebra - se poate trage de sliders, de punctul albastru, click pe bilele din stanga pentru on/off la fiecare formula, zoom cu rotita, drag la tot graficul, shify+click pa axa si apoi drag in directia axei pentru zoom pe o singura axa, '_' pentru subscript in formule, '^' pentru supercript, alt+litera pentru caractere grecesti, se mai pot schimba multe si cu click dreapta, etc.

 

Se poate si cu slidere animate, se poate chiar si cu ochelari si reprezentare 3D in realitate virtuala, serios!  :57
https://www.geogebra.org/calculator/ehkwndma

 

Desmos - cam acelasi lucru, dar o singura curba facuta mai la repezeala

https://www.desmos.com/calculator/z5oihxjdnz

 

si acelasi lucru din desmos dar incercat embedded in Elforum (nu stiu daca admite iframe-uri, copy paste la iframe vad ca nu merge)
<iframe src="https://www.desmos.com/calculator/z5oihxjdnz?embed" width="500px" height="500px" style="border: 1px solid #ccc" frameborder=0></iframe>

Edited by Guest
Link to post
Share on other sites

Cum ziceam, in 2020 sunt tool-uri mai faine decat erau in anii '90.

 

La fel si cu limbajele (de programare).  Exemplele de algoritmi scrise de nea Smith sunt in BASIC (Beginner's All-Purpose Symbolic Instruction Code).  Nu prea mai foloseste nimeni BASIC, acum Python-ul e king.  Spornic foarte, merge pe orice sistem de operare, bun la toate, usor de folosit, adoptat ca limbaj de facto in comunitatea stiintifica.

 

Toata lumea azi, de la noi aici la oi, pana la cercetatorul rusnac de la Токамáк, foloseste Python.

 

Python stie multe module, similar librariilor in alte limbaje, module care pot fi instalate la nevoie.  Ca sa nu facem varza de instalari in calculator, o sa folosim Python environments.  Un environment este un loc unde putem sa facem probe si sa instalam in Python ce vrea muschii nostri, fara sa afectam restul Python-ului din calculator.

 

O sa folosim Ubuntu.  Cine foloseste Windows, e pe cont propriu.  Sa citeasca pe net cum se instaleaza.  Ce scrie aici e valabil pentru Ubuntu (20.04 Focal Fossa), sau alte distributii de Linux bazate pe Debian.  Cine are Windows, sa-si puna Linux, sau sa foloseasca o masina virtuala ori o versiune de Ubuntu live daca nu poate renunta nicicum la Windows.

 

Deschidem un Terminal cu CTRL+ALT+T (Terminal in Linux e fereastra de-aia urata, numai cu scris si fara mouse), si scriem acolo cu jejetelele:

sudo apt update
sudo apt-get install python3-venv
sudo apt-get install python3-tk

# create a virtual environment called dsp_book with
# python3 -m venv /path/to/my/virtualenv/dsp_book
python3 -I -m venv dsp_book

# activate it (switch to the new environment)
source dsp_book/bin/activate

# install desired modules (in our active environment named dsp_book)
pip install pyserial
pip install sounddevice
pip install matplotlib

# deactivate the environment and return to normal
deactivate

 

 

Ca sa probam ca ce-am instalat mai si merge, facem un fisier text numit "spectrum_demo.py", scriem in el asa, si salvam:

import matplotlib.pyplot as plt
import numpy as np
import matplotlib.mlab as mlab
import matplotlib.gridspec as gridspec

# Fixing random state for reproducibility
np.random.seed(19680801)

dt = 0.01
t = np.arange(0, 10, dt)
nse = np.random.randn(len(t))
r = np.exp(-t / 0.05)

cnse = np.convolve(nse, r) * dt
cnse = cnse[:len(t)]
s = 0.1 * np.sin(2 * np.pi * t) + cnse

plt.subplot(211)
plt.plot(t, s)
plt.subplot(212)
plt.psd(s, 512, 1 / dt)

plt.show()

plt.savefig("spectrum_demo.pdf", format="pdf")
#plt.savefig("spectrum_demo.svg", format="svg")
#plt.savefig("spectrum_demo.png", format="png")

 

 

Ca sa rulam programul, deschidem un terminal (ctrl+alt+t), si scriem:

source dsp_book/bin/activate
python spectrum_demo.py

 

 

Daca stem ai alesi, trebuie sa ni s-arate asta in cale:

spectrum_demo.thumb.png.a5bdd70928df1614116afa16fc82a042.png

 

 

 

Buuun, o mers, avem si GeoGebra si Python.

No, acu' pe cai DSP-iștii mei, c-avem di tăte!

 

Edited by Guest
Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.


×
×
  • Create New...

Important Information

We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.Terms of Use si Guidelines