Я пытаюсь настроить фильтр в Python, и я застрял в основных вещах.
Это функция, которую я должен реализовать:
y[n] = (1 − λ) · x[n] + λ · y[n − 1]
Я читаю файл m и применяю фильтр.
Вот код:
import sys
import numpy as np
import matplotlib.pyplot as plt
y = np.loadtxt('acs712_192us.m')
size = len(y)
x = np.arange(0, size)
out = []
lamb = 0.9
for i in range(0, len(y)):
out.append(((1-lamb) * y[i]) + (lamb * out[i - 1]))
plt.plot(x, y)
plt.plot(x, out)
plt.show()
Когда я запускаю эту программу, получаю следующую ошибку:
Файл "main_LI.py", строка 15, в out.append (((1-lamb) * y [i]) + (lamb * out [i - 1])) IndexError: список индексов вне диапазона
Я знаю, что не могу получить доступ к позиции [-1] (в первом цикле), может быть в этом проблема?
У кого-нибудь есть советы?
Спасибо, ребята!