-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathgenerator.py
More file actions
50 lines (39 loc) · 1.16 KB
/
generator.py
File metadata and controls
50 lines (39 loc) · 1.16 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
from math import pi,sin
from observer import *
class Generator(Subject):
def __init__(self,a=1.0,f=1.0,p=0.0):
Subject.__init__(self)
self.signal=[]
self.a,self.f,self.p=a,f,p
self.generate_signal()
self.grid_resolution = 8
def generate_signal(self):
del self.signal[0:]
samples=1000
for t in range(0,samples,5):
samples=float(samples)
e=self.a*sin((2*pi*self.f*(t*1.0/samples))-self.p)
self.signal.append((t*1.0/samples,e))
self.notify()
def set_magnitude(self,a):
self.a=a
print("set_magnitude "+str(a))
self.generate_signal()
def get_grid_resolution(self):
return self.grid_resolution
def set_grid_resolution(self, value):
self.grid_resolution = value
def get_magnitude(self):
return self.a
def set_frequence(self,f):
self.f=f
self.generate_signal()
def get_frequence(self):
return self.f
def set_phase(self,p):
self.p=p
self.generate_signal()
def get_phase(self):
return self.p
def get_signal(self):
return self.signal