Цитата(SPACUM @ Dec 16 2009, 00:14)

Вообще БПФ = чистая математика и сильно отличается от бытовых представлений об частотах спектрах итд.
Не особенно. В этом смысле и дискретный сигнал сильно отличается от непрерывного.
ДПФ (БПФ это реализация ДПФ) - это дискретизация непрерывного физического спектра взятого с функцией окна. Дискретные отсчеты свертки физического спектра с функцией окна в спектральной области. Если окно не применяется, то вставится прямоугольное окно (спектральные sin(x)/x) помимо нашего желания.
Поэтому каждый отсчет ДПФ для непрерывного спектра формируется суммой от всех частот, но с весом от функции окна. Функция окна быстро затухает по разности частот. А значит каждый отсчет ДПФ преобразования формируется непрерывным физическим спектром Фурье только от близких частот к данному бину . Ситуация ничем не отличается от той которая возникнет, если поставить банк узкополостных фильтров на соответствующих бинах ДПФ. Но ДПФ ещё и обладает полезными математическими свойствами. Спектральное разрешение в этих случаях непрерывного спектра сигнала всегда будет определяться шириной функции окна, которая в спектральной области в соответствии с критерием "неопределённости" Рэлея будет 1/N (или 1/T в размерных единицах)
Если мы знаем, что комплексная синусоида вообще одна на фоне шума - то в ДПФ мы в точности имеем отдискретизированую в спектральной области функцию окна, центрированую на частоте синусоиды. Поэтому всегда, независимо от того пападает ли частота кратно на бины ДПФ, мы можем увидев эту функцию окна в полученом ДПФ, провести интерполяцию и найти частоту, амплитуду и фазу этой синусоиды. Причем Райф и Бурстин доказали, что в случае одиночной синусоиды наибольшую точность даёт прямоугольное (т.е. никакое) окно. Они же предложили проводить интерполяцию посредством добавления нулей в данные и квадратичной интерполяцией в окрестности максимума.
Если спект линейчатый и гармоники находятся далеко друг от друга, эта же методика позволяет получать очень точные оценки этих синусоид, но с применением функций окон, изолирующих эти линии в спектре.Если на каждую линию спектра поставить функцию окна с соответствующей амплитудой и просумировать, то это то что мы получим в ДПФ и мы снова сможем проводить интерполяцию в том случае, если эти оконные отклики перекрываются слабо.
Походу интерполяция добавлением нулей и подгонки параболы фиттингом - не единственый способ интерполяции спектра вблизи максимума спектральной линии. Есть методы производящие "внутреннюю интерполяцию", без всякого добавления нулей. Вот как это всё выглядит в Матлабе
http://home.comcast.net/~kootsoop/EricJ2/index.htm Лучший из них не очень давно предложен в работе МакЛеода (не путать с горцем Маклаудом и не размахивать здесь саблей!)