2016-10-16 4 views
0

у меня есть сигнал a(t), это то, как он выглядит, когда я сюжет его:Извлеченные спектр зависит от числа точек выборки

enter image description here

Я пытаюсь извлечь собственные частоты этого сигнала с помощью БПФ в MATLAB , Я делаю это, как этот

Y=fft(a); 
P2 = abs(Y/L); 
P1 = P2(1:L/2+1); 
P1(2:end-1) = 2*P1(2:end-1); 
plot(P1) 

Теперь, получается, что если я использую Y=fft(a), я получаю только частоты, близкие к 0, когда я сюжет спектра. Если я использую Y=fft(a(1:3:end)), то получаю частоты в 0 и ненулевые частоты.

  1. Почему эти ненулевые частоты не появляются, когда я делаю БПФ на полном наборе данных, но только когда я пробовал каждую четвертую точку?
  2. Является ли ненулевая частота фактически, содержащейся в моем наборе данных или это артефакт?
+0

Что такое 'L'? Можете ли вы либо включить график вашего спектра, либо данные для 'a', или способ генерации' a'? –

ответ

1

Если вы изменяете ширину, которую ваши данные задают для входа FFT, вы умножаете данные на прямоугольное окно, которое свертывает спектр с помощью функции Sinc. Результаты этой спектральной свертки будут отображаться для любых спектральных частот, которые не являются точно целочисленным, периодическим в пределах новой ширины БПФ.

 Смежные вопросы

  • Нет связанных вопросов^_^