Za pomocą Pythona nie można stworzyć ciągłego sygnału - program nie potrafi stworzyć ciągłej funkcji \(sin(x)\) np. dla przedziału \([-1,1]\). Potrafi on jednakże wyszukać wartości, jakie reprezentuje dana funkcja dla jakiegoś argumentu.
Na przykład:
import numpy
# ważne - należy zaimportować bibliotekę numpy.
# bez tego funkcje nie będą działać.
print numpy.sin(5)
otrzymujemy wynik:
-0.95892427466313845
Wykorzystując fakt, że Python może podać nam wartość funkcji nie tylko dla jednego argumentu, można stworzyć tablicę liczb dla których chcemy otrzymać wyniki. Na przykład:
import numpy
# tworzymy tablicę liczb
a = ([1,2,3])
print numpy.sin(a)
I otrzymujemy wyniki - również w tablicy:
array([ 0.84147098, 0.90929743, 0.14112001])
Jeżeli więc chcemy wykonać symulację ciągłego sygnału, musimy utworzyć zmienną będącą wektorem, w którym "odstęp" między kolejnymi liczbami jest bardzo mały. Pomaga w tym funkcja arange. Np.
import numpy
t = numpy.arange(t_0, t_k, 1./Fs)
# t_0 oznacza tu początek przedziału (np. przedziału czasu)
# t_k oznacza koniec przedziału (otwarty)
# Fs oznacza częstotliwość - ile chcemy otrzymać liczb w jednostce czasu;
# wobec tego 1./Fs oznacza "jak często" chcemy wybierać liczby - tj. okres próbkowania
Możemy więc stworzyć jakąś funkcję okresową — sinus czy cosinus od utworzonego wektora t.
Tworzy to bazę do dalszych obliczeń.
Należy zdefiniować czym w naszym przypadku jest \(t_0\), \(t_k\) oraz \(F_s\). Im większa jest wartość \(F_s\), tym bardziej wygenerowane wyniki będą przypominać funkcję ciągłą.
numpy.sin(2*numpy.pi*t)
lub o częstości (kołowej) na przykład 3:
numpy.sin(3*t)
lub też dodać fazę początkową (czyli „przemieścić” oryginalną funkcję
periodyczną), na przykład
numpy.sin(t+0.5)