XPEHOMETP
Silver Member | Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору akaGM Гым! Дискретное преобразование Фурье имеет свои реальные пределы. Это примерно как в случае решения системы линейных уравнений. Фактически, имеем N исходных точек, по ним можем определить N значений переменных. И ни на одну больше. Тут - то же самое. Фактически, мы записываем некие данные в виде многочлена, составленного из ортогональных функций - синусов-косинусов от разных частот. Имеем N точек - получаем N коэффициентов многочлена, и ни на одну больше. Половина из них - коэффициенты при синусах, другая половина - при косинусах. И того - частот получится N/2, что как раз отвечает теореме Найквиста. Что логично. Да, тут есть тонкости. Кроме синусов-косинусов в разложении Фурье есть еще свободный член, среднее арифметическое из всех данных. Но на пределе Найквиста, при N/2 (задавая волну синуса-косинуса всего двумя точками), мы на самом деле не сможем одинаково хорошо определить и синус, и косинус. Задать волну косинуса двумя точками (в начале и в середине цикла) вообще не реально - это будут нули (по определению косинуса), и амплитуда волны тогда совсем не определена. Значит, коэффициент при косинусе на частоте N/2 по определению - ноль, и искать надо только N переменных из N точек данных. Это радует. Тонкостей, на самом деле, еще больше, ибо выше полагалось, что число N - четное. Для нечетного N все немного сложнее, но не будем туда влезать. Короче. Ровно так же, как решая N линейных уравнений относительно N переменных, можно получить ровно N их (переменных) значений, так же, раскладывая дискретным преобразованием Фурье набор из N точек, мы обязаны получить в аккурат N значений коэффициентов при синусах-косинусах (с небольшими поправками, о которых уже говорилось). А вот вопрос про Цитата: могу ли я (как?), имея набор n дискретных данных Фi в диапазоне T1 .. Tn при помощи DFT посчитать _наперёд заданное количество_ m Fj точек в диапазоне W1 .. Wm | - уже смахивает на задачу интерполяции. Безусловно, можете. 1) Раскладываете свои данные в ряд Фурье - ну, фактически, в тригонометрический полином; 2) считаете значения этого полинома во всех интересующих точках. Ограничение ряда Фурье одними синусами или косинусами (как у Вас) (в зависимости от "четности" функции) - обычная практика. Коэффициентов тогда получится, понятно, N/2. Главное, чтобы поведение функции соответствовало этой модели. Т.е. если хотим записать функцию косинусами - она должна начинаться с нуля и заканчиваться в ноль. |