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

Biblioteki

numpy

scipy.signal

scipy.stats

wbudowane

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

numpy.zeros numpy.ones numpy.ndarray.min numpy.ndarray.max
numpy.ndarray.shape numpy.reshape numpy.arange numpy.dot
numpy.where numpy.logical_and numpy.logical_or numpy.hstack
numpy.vstack numpy.concatenate numpy.copy numpy.diff
numpy.array

Sygnałowe

numpy.fft.fft numpy.fft.fftshift numpy.fft.fftfreq numpy.fft.ifft
numpy.bartlett numpy.blackman numpy.hamming numpy.hanning
numpy.kaiser numpy.fft.rfft numpy.fft.rfftfreq scipy.signal.periodogram
scipy.signal.welch numpy.correlate scipy.signal.convolve

Statystyczne

numpy.mean numpy.std scipy.stats.scoreatpercentile scipy.stats.norm
numpy.random.rand numpy.random.randn

Filtry

scipy.signal.firwin scipy.signal.firwin2 scipy.signal.freqz scipy.signal.lfilter
scipy.signal.cheby1 scipy.signal.cheby2 scipy.signal.ellip scipy.signal.buttord
scipy.signal.butter scipy.signal.cheb1ord scipy.signal.cheb2ord scipy.signal.ellipord
scipy.signal.kaiserord scipy.signal.filtfilt scipy.signal.decimate

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))