2014-06-08 2 views
0

У меня есть сигнал х (т) с его значение так же, как:как вычислить PSD сигнала с различным расстоянием времени в MATLAB

t = 0, 1, 3, 4, 7, 8, 10, 15, ... 
x = 3, 4, 5, 4, 6, 7, 4, 8, ... 

как вы можете видеть, проблема Herre расстояние времени между 2 любой образец, который не равен. можете ли вы рассказать мне, как использовать matlab для создания своего psd? Большое спасибо.

+0

ощущению как домашнее задание, чтобы продемонстрировать понимание FFT-х. Вместо того, чтобы просто называть функцию fft, ученик должен понимать основную идею о том, что это быстрый способ вычисления интегралов произведения данных с синусоидой. Вы можете оценить синусоиду в любой момент, но вопрос заключается в том, как вычислить дискретный интеграл. Определите прямоугольники или трапеции, чтобы представить объём, встроенный в каждую точку. В этот момент вы, вероятно, сможете распознать сходство с повторной выборкой или интерполяцией ввода. interp1 (некоторые могут считать нулевое заполнение тоже.) – dennis

+0

спасибо за ответ на мой вопрос. Это не домашняя работа для понимания fft. Я работаю над своим проектом, и мой результат - файл данных. Это то, что я вижу в этом файле, и я понятия не имею об этом. –

+0

Если вы ничего не знаете о сигнале, вы можете попытаться интерполировать 'x' таким образом, чтобы он был отобран в единой сетке. Проверьте ['interp1'] (http://www.mathworks.com/help/matlab/ref/interp1.html) (или введите' help interp1' в matlab) – ThP

ответ

0

Сначала я бы перепробовал данные с интерполяцией, чтобы иметь регулярно дискретизированный сигнал. Для алгоритма интерполяции я использую сплайн, но вы также можете использовать interp1, который будет быстрее;

t2 = t(1):step:t(end); %with this I have a t signal with every sample separated by step 
x2 = spline(t, x, t2); 

Затем вы можете PSD ваш сигнал x2 с fft, pwelch ...