STATLAB/ListaFunkcji: Różnice pomiędzy wersjami
Z Brain-wiki
Linia 162: | Linia 162: | ||
import numpy as np | import numpy as np | ||
− | def sin(f = 1, T = 1, Fs = 128, phi =0 ): | + | def sin(f = 1., T = 1., Fs = 128., phi =0. ): |
− | '''sin o zadanej częstości (w Hz), długości, fazie i częstości próbkowania | + | ''' |
+ | (float, float, float, float) -> (numpy.ndarray, numpy.ndarray) | ||
+ | sin o zadanej częstości (w Hz), długości, fazie i częstości próbkowania | ||
Domyślnie wytwarzany jest sygnał reprezentujący | Domyślnie wytwarzany jest sygnał reprezentujący | ||
1 sekundę sinusa o częstości 1 Hz i zerowej fazie próbkowanego 128 Hz | 1 sekundę sinusa o częstości 1 Hz i zerowej fazie próbkowanego 128 Hz | ||
+ | Zwraca macierz amplitud i czasu. | ||
''' | ''' | ||
Linia 172: | Linia 175: | ||
s = np.sin(2*np.pi*f*t + phi) | s = np.sin(2*np.pi*f*t + phi) | ||
return (s,t) | return (s,t) | ||
+ | |||
+ | def delta(t0=0.5, T=1.0 ,Fs = 128.): | ||
+ | ''' | ||
+ | (float, float, float) -> (numpy.ndarray, numpy.ndarray) | ||
+ | Generowanie funkcji delta. Zwraca macierz amplitud i czasu. | ||
+ | t0: położenie maksimum | ||
+ | T: czas trwania sygnału | ||
+ | Fs: częstość próbkowania | ||
+ | ''' | ||
+ | dt = 1.0/Fs | ||
+ | t = np.arange(0,T,dt) | ||
+ | d = np.zeros(len(t)) | ||
+ | d[np.ceil(t0*Fs)]=1 | ||
+ | return (d,t) | ||
+ | |||
+ | def gabor(f = 1., T = 1., Fs = 128., phi =0., t0 = 0.0, std = 1.0 ): | ||
+ | ''' | ||
+ | (float, float, float, float, float, float) -> (numpy.ndarray, numpy.ndarray) | ||
+ | Generowanie funkcji Gabora. Zwraca macierz amplitud i czasu. | ||
+ | f: częstość oscylacji | ||
+ | T: czas trwania sygnału | ||
+ | Fs: częstość próbkowania | ||
+ | phi: faza | ||
+ | t0: położenie maksimum | ||
+ | std: odchylenie standardowe | ||
+ | ''' | ||
+ | dt = 1.0/Fs | ||
+ | t = np.arange(0,T,dt) | ||
+ | g = np.cos(2*np.pi*f*(t-t0)+phi)*np.exp(-0.5*(t-t0)**2/(std**2)) | ||
+ | return (g, t) | ||
</source> | </source> | ||
+ | |||
<source lang = python> | <source lang = python> | ||
Linia 179: | Linia 213: | ||
def widmo_dB(s, N_fft, F_samp): | def widmo_dB(s, N_fft, F_samp): | ||
+ | ''' | ||
+ | (numpy.ndarray, int, float) -> (numpy.ndarray, numpy.ndarray) | ||
+ | s: sygnał | ||
+ | N_fft: ilość punktów DTF | ||
+ | F_samp: częstość próbkowania | ||
+ | Oblicza widmo mocy w skali decybelowej. Zwraca macierz mocy i częstości | ||
+ | ''' | ||
S = fft(s,N_fft)/np.sqrt(N_fft) | S = fft(s,N_fft)/np.sqrt(N_fft) | ||
S_dB = 20*np.log10(np.abs(S)) | S_dB = 20*np.log10(np.abs(S)) |
Wersja z 15:36, 9 lis 2015
Spis treści
Biblioteki
Lista funkcji
Matematyczne z pakietu numpy
numpy.sin | numpy.exp | numpy.log | numpy.real |
numpy.imag | numpy.conj | numpy.unwrap | numpy.angle |
numpy.sqrt | numpy.sum | numpy.power | numpy.ceil |
numpy.floor | numpy.round | numpy.absolute | numpy.iinfo |
Macierzowe z pakietu numpy
Sygnałowe
Statystyczne
numpy.mean | numpy.std | scipy.stats.scoreatpercentile | scipy.stats.norm |
numpy.random.rand | numpy.random.randn |
Filtry
Pliki
numpy.fromfile | numpy.ndarray.tofile | numpy.loadtxt | numpy.savetxt |
scipy.io.wavfile.read | scipy.io.wavfile.write |
Wykresy Matplotlib
http://matplotlib.org/api/pyplot_api.html
plot | stem | subplot | figure |
imshow | title | xlim | ylim |
xlab | ylab | label | legend |
grid | show | fill_between | step |
Dodatkowe
import pylab as py
import numpy as np
def sin(f = 1., T = 1., Fs = 128., phi =0. ):
'''
(float, float, float, float) -> (numpy.ndarray, numpy.ndarray)
sin o zadanej częstości (w Hz), długości, fazie i częstości próbkowania
Domyślnie wytwarzany jest sygnał reprezentujący
1 sekundę sinusa o częstości 1 Hz i zerowej fazie próbkowanego 128 Hz
Zwraca macierz amplitud i czasu.
'''
dt = 1.0/Fs
t = np.arange(0,T,dt)
s = np.sin(2*np.pi*f*t + phi)
return (s,t)
def delta(t0=0.5, T=1.0 ,Fs = 128.):
'''
(float, float, float) -> (numpy.ndarray, numpy.ndarray)
Generowanie funkcji delta. Zwraca macierz amplitud i czasu.
t0: położenie maksimum
T: czas trwania sygnału
Fs: częstość próbkowania
'''
dt = 1.0/Fs
t = np.arange(0,T,dt)
d = np.zeros(len(t))
d[np.ceil(t0*Fs)]=1
return (d,t)
def gabor(f = 1., T = 1., Fs = 128., phi =0., t0 = 0.0, std = 1.0 ):
'''
(float, float, float, float, float, float) -> (numpy.ndarray, numpy.ndarray)
Generowanie funkcji Gabora. Zwraca macierz amplitud i czasu.
f: częstość oscylacji
T: czas trwania sygnału
Fs: częstość próbkowania
phi: faza
t0: położenie maksimum
std: odchylenie standardowe
'''
dt = 1.0/Fs
t = np.arange(0,T,dt)
g = np.cos(2*np.pi*f*(t-t0)+phi)*np.exp(-0.5*(t-t0)**2/(std**2))
return (g, t)
import numpy as np
from numpy.fft import fft, fftfreq, fftshift
def widmo_dB(s, N_fft, F_samp):
'''
(numpy.ndarray, int, float) -> (numpy.ndarray, numpy.ndarray)
s: sygnał
N_fft: ilość punktów DTF
F_samp: częstość próbkowania
Oblicza widmo mocy w skali decybelowej. Zwraca macierz mocy i częstości
'''
S = fft(s,N_fft)/np.sqrt(N_fft)
S_dB = 20*np.log10(np.abs(S))
F = fftfreq(N_fft, 1.0/F_samp)
return (fftshift(S_dB),fftshift(F))