Ответы пользователя по тегу Преобразование Фурье
  • Как сделать оконный полосовой фильтр?

    longclaps
    @longclaps
    import numpy as np, matplotlib.pyplot as plt
    from scipy.fftpack import rfft, irfft
    
    n = 2 ** 8
    x = np.linspace(0, 2 * np.pi, n)
    y = np.sin(x) + np.cos(x * 30)
    f0 = rfft(y)
    f1 = f0.copy()
    f1[:n // 8] = 0
    z = irfft(f1)
    f, (spectra, signal) = plt.subplots(2, 1, sharey=False)
    spectra.plot(x, f0, label='f0')
    spectra.plot(x, f1, label='f1')
    spectra.legend()
    spectra.title.set_text('spectra')
    signal.plot(x, y, label='y')
    signal.plot(x, z, label='z')
    signal.legend()
    signal.title.set_text('signal')
    plt.legend()
    plt.show()
    Ответ написан
  • Как взять преобразование Фурье от дискретных точек?

    longclaps
    @longclaps
    > Как правильно получить частотный спектр этих данных?
    Спектр всегда частотный, а масло - масляное
    > Ожидаю, что должен вылезти пик на амплитуде "2".
    Вот это вообще непонятно что означает

    Смотри: у тебя есть какие-то дискретные события, происходящие в произвольные моменты времени, например, ты сидишь под яблоней и, когда падает яблоко - засекаешь время. И ты хочешь что-то понять про периодичность, связанную с этими событиями.
    Первое - временные рамки. Помимо времени падения первого и последнего яблока понадобятся моменты начала и конца наблюдений. Пусть это будут 00:00 и 24:00.
    Второе. Дискретное преобразование фурье работает с периодическими отсчетами, например, сколько яблок упало за каждый час в течение суток (те 24 отсчета). БПФ - алгоритм, требующий, чтобы число отсчетов было степенью двойки (в моём примере возьму 32 отсчета по 45 мин).
    Третье. Если яблок падает мало, а вытянуть из опыта хочется по-максимуму, можно попробовать интерполяцию, например, если в 12:30 упало 1 яблоко, это можно интерпретировать так: в 12:00 упала 1/3 яблока и в 12:45 - остальные 2/3. Для корректной интерполяции на краях временного диапазона неплохо бы прихватить по 45мин наблюдений до и после.
    Ответ написан