2016-07-02 7 views
0

У меня есть набор данных в матрице в matlab. Он содержит 25 000 значений, принимаемых каждые 0,5 нс; поэтому общее время набора данных составляет 1,25E-5 секунд.Частота из набора данных fft matlab

Набор данных содержит очень высокочастотный шум, который меня не интересует, поэтому я создаю другую матрицу - это каждая 50-я точка данных из первой матрицы. Таким образом, размер матрицы составляет 1000 *.

Я набираю абсолютные значения из матрицы Matlab в этой матрице (я также нормализую амплитуду и строю только первую половину) и получаю прикрепленные (два графика, второй - близкий к интересующим меня низким частотам). Как преобразовать ось x в частоту?

  • Еще один момент, если я беру каждую точку данных (так что я создаю fft из всех 25 000 точек), тогда ось x точно такая же; другими словами, размер моей матрицы, по-видимому, не влияет на ось x, возвращаемую матрицей. Я добавил две ссылки на частотный спектр, один из которых представляет собой крупный план низких частот, которые меня интересуют. Ось идет от 0 до 50, поэтому именно эти значения мне нужно преобразовать в Гц.

Заранее благодарен!

Close up of frequency spectrum

frequency spectrum

ответ

0

Из того, что я прочитал на http://www.mathworks.com/help/matlab/math/fast-fourier-transform-fft.html#bresqop-1, оказывается, что единицы на оси х проложенным FFT являются Гц, если первый вектор, f, вы положили в plot(f,power), определяется как последовательность элементов n (n - количество точек данных, помещенных в БПФ), увеличиваясь с нуля до частоты выборки.

Таким образом, для первого участка, который использовался каждые 50 пунктов, которые были сделаны на частоте 2 ГГц, частота выборки составляла бы 40 МГц. Таким образом, f = (0:n-1)*4*10^7/(25000/50)

Он идет, чтобы показать, как использовать функцию fftshift поставить в центр выходе функции fft на 0, но ясно, что вы уже сделали это, и отрубили отрицательную часть.

Итак, если у вас есть правильное разделение fs/n, частота дискретизации, деленная на количество используемых точек данных, в векторе, который поставляет ось x в функцию plot, тогда единицы оси x будут Hz ,

(я надеюсь, что вы все еще есть номера, чтобы снова построить график Если нет, то этот вопрос может помочь: Confusion in figuring out the relation between actual frequency values and FFT plot indexes in MATLAB)

+0

спасибо за это! – William

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

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