Думаю, обсуждение преимуществ одних методов перед другими обретает практический смысл только применительно к конкретным типам сигналов и, соответственно, лишь в конкретной частной постановке задачи.
Да, на практике растекания спектра не избежать (ведь крайне маловероятно, чтобы частоты исследуемых сигналов всегда попадали точно в бины FFT), но стоит ли бороться с боковыми лепестками, остающимися после сглаживания окном (или даже без окна)? Так, если сигнал представляет собой сумму стационарных синусоид, заметно различающихся по частоте, как в исходном примере, а задача состоит в нахождении этих частот, то может быть достаточным обычное дискретное пр-е Фурье даже на небольшом количестве отсчётов N и даже без окна (т.е. в прямоугольном окне, выделяющем N отсчётов).
На одном из радиофорумов, в разговоре о точном измерении частоты, когда "знатоки"-любители (к ним по невежеству примкнул было и я :-) уже сошлись во мнении о необходимости долгого накопления отсчётов, один специалист по цифровой обработке сигналов в качестве опровержения
дал ссылку на вот такую статью 2007 года:
"Fast, Accurate Frequency Estimators"
E. Jacobsen; P. Kootsookos
https://ieeexplore.ieee.org/document/4205098Идея там простая: частота тона вычисляется по трём фурье-амплитудам
в соседних бинах - около максимума спектрального пика и по обе стороны от него - по формулам (3) и (1) в статье.
Вот, что выходит для примера
B@R5uk с частотами
с частотой дискретизации
Беру (в Маткаде) в роли сигнала
первые
отсчётов. В массиве
смотрим амплитуды
Там виден локальный максимум при
и ещё один максимум при
Вычисляем для них значения
и
по формуле (3) из статьи:
У нас:
и
Получается:
и
Вычисляем значения частот по формуле, соответствующей формуле (1) в статье:
Результат:
и
В обеих частотах таким простым путём удалось найти четыре верных знака!
(ещё пример с оконным кратковременным Фурье)
Одна из задач, где нет альтернативы оконному Фурье-преобразованию небольших блоков сигнала, притом в реальном времени, - радиоприёмники типа SDR. (Software-defined radio. Поиском по форуму я почему-то не нашёл упоминаний об SDR, поэтому приведу немного подробностей; извините, пожалуйста, если это общеизвестные банальности).
Вместо старинной шкалы с указателем одной принимаемой станции современный SDR изображает на экране компьютера "живую" спектрограмму сигналов в широкой полосе частот. Радиосигналы существенно нестационарны. Задача здесь состоит не в измерении отдельных гармоник, а в выборе (по качественному виду спектрограммы) для приёма
полосы частот и типа демодулятора. Боковые лепестки, если они и есть, тут погоды не делают.
По ссылке
http://www.websdr.org/ даётся некий список sdr-приёмников, раздающих принятые сигналы в интернет. Первый пункт в списке самый известный - это широкополосный приёмник в университете Twente:
http://websdr.ewi.utwente.nl:8901/Пояснение тем, кто знакомится с этим SDR впервые: для примера введите там в левом поле частоту 1008 kHz, тип модуляции нажмите АМ, в правом поле Waterfall zoom жмите +, чтобы шкала частот растянулась и появились названия станций. Мышью можно двигать серединку изображения АЧХ демодулятора под шкалой частот - тем самым перестраиваться со станции на станцию.
Без оконного Фурье, в смысле - без обновляемой в реальном времени спектрограммы, - такая замечательная штука была бы невозможна!