Фильтр LMS в питоне с нежелательным сигналом вместо желаемого сигнала - PullRequest
0 голосов
/ 24 октября 2019

Я ищу фильтр (предпочтительно LMS) в python для подавления шума из аудиофайла сигнал + шум. В основном я буду измерять основной сигнал, загрязненный шумом. И файл, содержащий только шум (в основном). Код должен отфильтровывать шум из основного сигнала, загрязненного шумом.

Я попробовал библиотеку adaptfilt и padasip. Однако эти фильтры требуют входной сигнал + шум и целевой вход. У меня есть только вход сигнал + шум и нежелательный вход цели.

import numpy as np
import matplotlib.pylab as plt
import padasip as pa 

# creation of data
N = 500
x = np.random.normal(0, 1, (N, 4)) # input matrix
v = np.random.normal(0, 0.1, N) # noise
d = 2*x[:,0] + 0.1*x[:,1] - 4*x[:,2] + 0.5*x[:,3] + v # target

# identification
f = pa.filters.FilterLMS(n=4, mu=0.1, w="random")
y, e, w = f.run(d, x)

# show results
plt.figure(figsize=(15,9))
plt.subplot(211);plt.title("Adaptation");plt.xlabel("samples - k")
plt.plot(d,"b", label="d - target")
plt.plot(y,"g", label="y - output");plt.legend()
plt.subplot(212);plt.title("Filter error");plt.xlabel("samples - k")
plt.plot(10*np.log10(e**2),"r", label="e - error [dB]");plt.legend()
plt.tight_layout()
plt.show()

Приведенный выше код использует цель для выполнения алгоритма LMS. Есть ли библиотека или способ кодирования сигнала LMS только с 2 входами, шум + сигнал и шум?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...