У меня есть 1D массив сигналов.Этот массив содержит информацию о некоторых функциях, которые я хочу проанализировать с помощью np.fft
.
. В качестве примера я попробовал следующее:
Моя функция должна быть простой синусоидой lambda x : sin(x)
, вТеория, когда я помещаю входной массив через эту функцию, я получаю массив сигналов, который при преобразовании с помощью fft должен сказать мне, что основным компонентом этого сигнала был (в псевдокоде) signal = 1* sin(x)
.
Пока чтоЯ не мог получить более мудрого ответа от любого из приведенных здесь ответов, поэтому я поднял этот вопрос.
Теперь мой вопрос: как я могу получить «сырые» веса синусоидальной составляющей из моего сигнала?
Вот где я застрял:
>>> y = f(x)
>>> fqs = np.fft.fft(y)
>>> fqs
array([ 3.07768354+0.00000000e+00j, 3.68364588+8.32272378e-16j,
8.73514635-7.15951776e-15j, -7.34287625+1.04901868e-14j,
-2.15156054+5.10742080e-15j, -1.1755705 +4.87611209e-16j,
-0.78767676+3.40334406e-16j, -0.58990993+4.25167217e-16j,
-0.476018 -3.43242308e-16j, -0.40636656+1.13055751e-15j,
-0.36327126+1.55440604e-16j, -0.33804202-1.07128132e-16j,
-0.32634218+2.76861429e-16j, -0.32634218+8.99298797e-16j,
-0.33804202+5.02435797e-16j, -0.36327126-1.55440604e-16j,
-0.40636656-3.06536611e-16j, -0.476018 -4.57882679e-17j,
-0.58990993+4.31587904e-16j, -0.78767676+9.75500354e-16j,
-1.1755705 -4.87611209e-16j, -2.15156054-1.87113952e-15j,
-7.34287625+1.79193327e-15j, 8.73514635-6.76648711e-15j,
3.68364588-6.60371698e-15j])
>>> np.abs(_)
array([3.07768354, 3.68364588, 8.73514635, 7.34287625, 2.15156054,
1.1755705 , 0.78767676, 0.58990993, 0.476018 , 0.40636656,
0.36327126, 0.33804202, 0.32634218, 0.32634218, 0.33804202,
0.36327126, 0.40636656, 0.476018 , 0.58990993, 0.78767676,
1.1755705 , 2.15156054, 7.34287625, 8.73514635, 3.68364588])
>>> where do I find my 1*sin(x) ?