AlexOr
Apr 20 2011, 04:32
Исходный сигнал 1024 отсчетов с частотой дискретизации 1,024 кГц. Берем БПФ и получаем амплитудный спектр, состоящий из 512 отсчетов по частоте с шагом 1 Гц (0 Гц, 1 Гц, 2 Гц, .… 511 Гц).
Как получить дополнительные точки по частоте с наименьшими вычислительными затратами?
Это нужно для более качественного графического отображения амплитудного спектра т.к. в зоне низких частот (например, 0…30 Гц) человек видит ломаную линию. А также для более точного определения частоты максимума спектра.
AlexOr
Apr 20 2011, 05:48
Вопрос снимается.
Решено добавленем нулей.
bahurin
Apr 20 2011, 05:51
добавить к 1024 точкам сигнала еще 1024 точки нулей и взять бпф на 2048 точек. получите 1024 точки спектра. Добавите нулей до массива 4096 точек получите 2048 точек спектра. При этом спектр у вас будет более сглаженный
AlexOr
Apr 20 2011, 17:32
Цитата(bahurin @ Apr 20 2011, 08:51)

добавить к 1024 точкам сигнала еще 1024 точки нулей и взять бпф на 2048 точек. получите 1024 точки спектра. Добавите нулей до массива 4096 точек получите 2048 точек спектра. При этом спектр у вас будет более сглаженный
Спасибо.
анатолий
Apr 24 2011, 08:24
Достаточно обычной интерполяции выходных данных, т.к. входной информации не добавляется.
Тем более, что нужно только для вывода.
А что тогда вернет такая операция в MATLAB:
исходный вектор 1024 отсчета - x
y = fft(x);
z = ifft(y);
Размерность y и z - 1024.
?
bahurin
May 17 2011, 07:09
Цитата(Andy_ @ May 17 2011, 01:11)

А что тогда вернет такая операция в MATLAB:
исходный вектор 1024 отсчета - x
y = fft(x);
z = ifft(y);
Размерность y и z - 1024.
?
z = x
Для просмотра полной версии этой страницы, пожалуйста,
пройдите по ссылке.