Часть-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?

Сделайте паузу. Я продолжу нашу дискуссию в следующем рассказе!