Часть-3
В продолжение нашего обсуждения удаления шума с помощью преобразования Фурье в Части-2 попробуем понять, всегда ли можно отфильтровать шум и получить чистый сигнал.
Амплитудный спектр, на который мы смотрели,
Проблема с этим спектром в том, что две частоты со значениями 25 и 75 полностью исчезают за шумом. Теперь в таких случаях мы, возможно, не сможем полностью отфильтровать шум, но, безусловно, уменьшим его, выбрав правильный порог для обнуления частот, отражающих шум.
Для порога 1000 имеем
abs_fft_sig = np.abs(fft_sig) indices = abs_fft_sig>1000 # filter out those value under 1800 sig_clean = indices * fft_sig # noise frequency will be set to 0 plt.plot(f,np.abs(sig_clean))
Выбор правильного порога может помочь нам еще больше уменьшить шумовые частоты. Тяжелый шум — один из серьезных противников нашей серии рассказов о преобразовании Фурье. Нам доступно множество литературы, в которой предлагаются алгоритмы удаления шума. Я постараюсь скрыть их как можно больше.
Сейчас я пойду в обход и покажу вам другой вид сигнала, простой и отличный от наших предыдущих. Это поможет раскрыть один интересный аспект преобразования Фурье.
import numpy as np import matplotlib.pyplot as plt plt.rcParams['figure.figsize'] = [7,4] plt.rcParams.update({'font.size':10}) sig_step = 0.001 t1 = np.arange(start=0,stop=1,step=data_step) t2 = np.arange(start=1,stop=2,step=data_step) t=np.concatenate((t1, t2), axis=None) sig1 = np.sin(2*np.pi*25*t1) sig2 = np.sin(2*np.pi*75*t2) sig=np.concatenate((sig1, sig2), axis=None) plt.plot(t,sig)
Найдите его преобразование Фурье и проверьте амплитудный спектр.
Спектр по-прежнему показывает два пика, один на 25, а другой на 75. Теперь сравните его с другим сигналом, состоящим из тех же частот.
import numpy as np import matplotlib.pyplot as plt plt.rcParams['figure.figsize'] = [7,4] plt.rcParams.update({'font.size':10}) sig_step = 0.001 t = np.arange(start=0,stop=1,step=data_step) sig = np.sin(2*np.pi*25*t)+np.sin(2*np.pi*75*t) plt.plot(t,sig)
Амплитудный спектр
Можете ли вы определить, в чем разница в амплитудных спектрах 1 и 2?
Сделайте паузу. Я продолжу нашу дискуссию в следующем рассказе!