web-dev-qa-db-fra.com

Python comment tracer une onde sinusoïdale

J'ai ce signal:

from math import*
Fs=8000
f=500
sample=16
a=[0]*sample
for n in range(sample):
    a[n]=sin(2*pi*f*n/Fs)

Comment puis-je tracer un graphique (cette onde sinusoïdale)?

et créer le nom de xlabel comme 'tension (V)' et ylabel comme 'échantillon (n)'

Quel code pour faire cela?

Je suis tellement reconnaissant de l'aide ^ _ ^

9
Wittaya

J'espère que cela aidera:

import matplotlib.pyplot as plt
import numpy as np


Fs = 8000
f = 5
sample = 8000
x = np.arange(sample)
y = np.sin(2 * np.pi * f * x / Fs)
plt.plot(x, y)
plt.xlabel('sample(n)')
plt.ylabel('voltage(V)')
plt.show()

P.S .: Pour un travail confortable, vous pouvez utiliser Le Jupyter Notebook .

26
nikioa
import matplotlib.pyplot as plt # For ploting
import numpy as np # to work with numerical data efficiently

fs = 100 # sample rate 
f = 2 # the frequency of the signal

x = np.arange(fs) # the points on the x axis for plotting
# compute the value (amplitude) of the sin wave at the for each sample
y = np.sin(2*np.pi*f * (x/fs)) 

#this instruction can only be used with IPython Notbook. 
% matplotlib inline
# showing the exact location of the smaples
plt.stem(x,y, 'r', )
plt.plot(x,y)

 enter image description here

9
Amjad
import math
import turtle

ws = turtle.Screen()
ws.bgcolor("lightblue")
fred = turtle.Turtle()
for angle in range(360):
    y = math.sin(math.radians(angle))
    fred.goto(angle, y * 80)

ws.exitonclick()
3
Arslan Hashim

La fenêtre de l'utilité a probablement disparu, mais je travaillais sur un problème similaire. Voici ma tentative de traçage de sinus en utilisant le module tortue.

from turtle import *
from math import *

#init turtle
T=Turtle()

#sample size
T.screen.setworldcoordinates(-1,-1,1,1) 

#speed up the turtle
T.speed(-1)

#range of hundredths from -1 to 1
xcoords=map(lambda x: x/100.0,xrange(-100,101))

#setup the Origin
T.pu();T.goto(-1,0);T.pd()

#move turtle
for x in xcoords:
    T.goto(x,sin(xcoords.index(x)))
1
zred

Un moyen simple de tracer une onde sinusoïdale en python en utilisant matplotlib.

import numpy as np
import matplotlib.pyplot as plt


x=np.arange(0,3*np.pi,0.1)
y=np.sin(x)
plt.plot(x,y)
plt.title("SINE WAVE")
0
Habeeb Ulla