Функция импульсного линейного изменения в Python - PullRequest
0 голосов
/ 17 апреля 2020

Я должен выполнить это упражнение и не знаю, что изменить в своем коде, чтобы получить значение на интервале [3,4], поскольку я очень плохо знаком с Python. Вот актуальная проблема:

x (A, t1, t2, t) = A / (t2 - t1) * (t - t1), если t1 <= t <t2 И 0 в противном случае </p>

Проверка путем построения графика значений и огибающей myRampPulse для сигнала с амплитудой 1, начинающегося во второй 3 и заканчивающегося во второй 4, для выборки с частотой 20 Гц, начинающейся во второй 0 и заканчивающейся во второй 5.

Я вставил свой код ниже:

import numpy as np
import matplotlib.pyplot as plt


A = 1       # amplitude
t1 = 3      # start time
t2 = 4      # stop time
fs = 20     # sampling frequency

t = np.arange(0, 5, 1/fs)

def myRampPulse(A, t1, t2, t):
    while(len(t)):
        return (A*((t>=t1)&(t<t2)))

result = myRampPulse(A, t1, t2, t)

plt.close('all')
plt.plot(t, result, '.')
plt.axis([0, 5, -2, 2])       
plt.title('Ramp pulse signal')
plt.xlabel('Time (s)')
plt.ylabel('Amplitude')

Любая помощь будет принята с благодарностью! Заранее спасибо!

1 Ответ

0 голосов
/ 17 апреля 2020

Замените функцию myRampPulse () на

def myRampPulse(A, t1, t2, t):
    while(len(t)):
        return (A*((t>=t1)&(t<t2))) * (t-t1) / (t2-t1)
...