Velocity Reviews - Computer Hardware Reviews

Velocity Reviews > Newsgroups > Programming > Python > Plot square wave

Reply
Thread Tools

Plot square wave

 
 
Yigit Turgut
Guest
Posts: n/a
 
      01-18-2012
Hi all,

I am trying to generate a pseudo pwm signal, low-high transition will
take place when screen goes from black to white and high-low
transition when white to black. As a result I am trying to plot the
signal. Here is my code;

import time, pylab, numpy, scipy, pygame

def _func1():
global end
global white
global k
global t
global i
k = numpy.arange(4)
t = numpy.arange(4)
i = 0
f = open("test.txt", "w")
white = True
start = time.time()
end = time.time() - start
screen = pygame.display.set_mode((0, 0), pygame.FULLSCREEN)
timer = pygame.time.Clock()
test = repr(time.time())
while(end<8.00):
end = time.time() - start
if white:
screen.fill((255, 255, 255))
time.sleep(1)
k[i] = 0
t[i] = end
f.write(str(t[i]) + "\t" + str(k[i]) + "\n")
i = i + 1
print repr(end)

else:
screen.fill((0, 0, 0))
time.sleep(1)
k[i] = 1
t[i] = end
f.write(str(t[i]) + "\t" + str(k[i]) + "\n")
i = i+ 1
print repr(end)

white = not white
pygame.display.update()
pygame.quit()

if __name__ == "__main__":
_func1()
time,data = numpy.loadtxt('test.txt', unpack=True)
print k
print t
print i
pylab.plot(time,data)
pylab.show()


Problem is I get a sawtooth instead of a square wave. I know that I
need to define points between 0,1,2 time integer values to achieve
this. But I hope there is a python trick that will yield this
time,data plot to a square wave?

 
Reply With Quote
 
 
 
 
Peter Otten
Guest
Posts: n/a
 
      01-18-2012
Yigit Turgut wrote:

> Problem is I get a sawtooth instead of a square wave. I know that I
> need to define points between 0,1,2 time integer values to achieve
> this. But I hope there is a python trick that will yield this
> time,data plot to a square wave?


There is no "Python trick", pylab is showing the data you provide. To get a
square wave you need two y values per x value, for example

import pylab

time = [0, 0, 1, 1, 2, 2, 3, 3, 4, 4]
data = [0, 1, 1, 0, 0, 1, 1, 0, 0, 1]
pylab.plot(time, data)
pylab.ylim(-.1, 1.1) # so you see the horizontal lines of the graph
pylab.xlim(-.1, 4.1)
pylab.show()

A general advice: try the individual aspects of your script (plotting,
pygame flicker, data i/o) separately to make sure you understand them well
enough before putting them together in the final version of your code.

 
Reply With Quote
 
 
 
Reply

Thread Tools

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off
Trackbacks are On
Pingbacks are On
Refbacks are Off


Similar Threads
Thread Thread Starter Forum Replies Last Post
superposition of a square wave over a sine wave Shiva VHDL 2 02-02-2009 02:49 PM
superposition of a square wave over a sine wave rara10 VHDL 0 01-30-2009 08:21 PM
square wave / sine wave generator red floyd C++ 5 06-21-2007 09:30 PM
Variable size plot symbols, variable hue plot colors in Python (MatPlotLib) ? Dr. Colombes Python 1 02-10-2005 08:49 PM
How to plot Sin wave ? Sloan C++ 3 08-05-2004 08:30 AM



Advertisments