Исходя из вашей частоты дискретизации (1000 раз в секунду), вы сможете анализировать только сигналы с частотой до 500 Гц. Любые компоненты нейронных сигналов, которые имеют более высокие компоненты, будут отображаться как сигналы более низких компонентов (если ваше устройство не оснащено фильтром верхних частот и т. Д.)
Команда для fft из Matlab Help:
Y = fft (сигнал, n)
Сигнал является либо F1, либо O1, либо F2, либо O2 и должен иметь длину вектора 1000. n определяет количество сэмплов вашего БПФ. Это, по сути, то, насколько точно вы разделите значения частоты от 0 до 1000 Гц (ваша частота дискретизации). Например, если вы выберите n = 256, ваш Y будет длинным вектором 256 с мерой, соответствующей частотам (0 * 1000/256 Гц, 1 * 1000/256 Гц, ... 255 * 1000/256 Гц) .
Y будет вектором комплексных значений. Часто вы хотите увидеть силу или мощь сигнала. Вы можете использовать «abs ()», чтобы найти величину. myPSD = abs (Y). Далее, потому что ваши сигналы являются реальными сигналами, их FFT симметричны примерно на половине частоты дискретизации (500 Гц). Таким образом, вы должны смотреть только на первую половину. Вот фрагмент кода для просмотра первой половины.
Y = fft (сигнал, n); % выберите ваш n
myPSD = abs (Y);
myHalfPSD = myPSD (1: ceil (n / 2))
myFreqValues = [0: 1000 / n: 500-1000 / n]% и myHalfPSD, и myFreqValues должны иметь длину n / 2
сюжет (myFreqValues, myHalfPSD)
Как правило, PSD отображается в логарифмическом масштабе или даже в децибелах. Так что вы можете добавить строку.
Y = fft (сигнал, n); % выберите ваш
myPSD = abs (Y);
myHalfPSD = myPSD (1: ceil (n / 2))
myHalfDBPSD = 20 * log (myHalfPSD)
myFreqValues = [0: 1000 / n: 500-1000 / n]%, и myHalfPSD, и myFreqValues должны иметь длину n / 2
сюжет (myFreqValues, myHalfDBPSD)
Если вы хотите построить все 4 графика одновременно, вы можете использовать что-то вроде
участок (4,1,1), участок (4,1,2) и т. д.
Надеюсь, это поможет,
Chuan