Изменение амплитуды и частоты numpy.sin (вес) в пилабе - PullRequest
2 голосов
/ 17 февраля 2011

Для части другого проекта мне просто нужно сделать простую синусоидальную волну с частотой f.

Изменение «сэмплов» дает странные эффекты на графике пилаба, и я просто не знаю, почему!

с использованием выборок = 500 дает график с частотой = 1/50 Гц.

с использованием выборок = 1000 дает график с частотой = 1/100 Гц.

затем с более крупными выборками, такими как 5000 и 10000, построенная волна меняет амплитуду вдоль оси t в виде шаблонов.

import numpy as N
f = 10.
w = 2. * N.pi * f
time_interval = 100
samples = 5000
t = N.linspace(0, time_interval, samples)
y = N.sin(w * t)
pylab.plot(t, y)
pylab.show()

Любая помощь здесь будет отличной! Я просто хочу базовую синусоидальную волну, но даже не могу этого сделать!

Ответы [ 3 ]

4 голосов
/ 17 февраля 2011

Я думаю, что у вас небольшое заблуждение с samples.Это только дает разрешение времени.Попробуйте построить график с помощью time_interval= 1 и изменить samples (начните с небольших значений, таких как 10, и постепенно увеличивайте их).Вот увидишь.

1 голос
/ 07 июля 2014

импорт пилаб

х = pylab.arange (0,150,0.2)

у = pylab.sin (х);

pylab.plot (х, у)

pylab.show ()

1 голос
/ 19 февраля 2011

Чтобы сделать ответ Ета явным, я установил time_interval в 1 и изменил samples, как он предложил:

import pylab
import numpy as N
f = 10.
w = 2. * N.pi * f
time_interval = 1
fig = pylab.figure()
for i, samples in enumerate((5, 50, 500, 5000)):
    pylab.subplot(2, 2, i+1)
    pylab.title('%i samples'%samples)
    t = N.linspace(0, time_interval, samples)
    y = N.sin(w * t)
    pylab.plot(t, y, '.-')
fig.show()

50 образцов явно недостаточно для time_interval из 1;Вот почему 5000 не достаточно образцов для time_interval 100.

...