Думаю, обсуждение преимуществ одних методов перед другими обретает практический смысл только применительно к конкретным типам сигналов и, соответственно, лишь в конкретной частной постановке задачи.
Да, на практике растекания спектра не избежать (ведь крайне маловероятно, чтобы частоты исследуемых сигналов всегда попадали точно в бины FFT), но стоит ли бороться с боковыми лепестками, остающимися после сглаживания окном (или даже без окна)? Так, если сигнал представляет собой сумму стационарных синусоид, заметно различающихся по частоте, как в исходном примере, а задача состоит в нахождении этих частот, то может быть достаточным обычное дискретное пр-е Фурье даже на небольшом количестве отсчётов N и даже без окна (т.е. в прямоугольном окне, выделяющем N отсчётов).
На одном из радиофорумов, в разговоре о точном измерении частоты, когда "знатоки"-любители (к ним по невежеству примкнул было и я :-) уже сошлись во мнении о необходимости долгого накопления отсчётов, один специалист по цифровой обработке сигналов в качестве опровержения
дал ссылку на вот такую статью 2007 года:
"Fast, Accurate Frequency Estimators"
E. Jacobsen; P. Kootsookos
https://ieeexplore.ieee.org/document/4205098Идея там простая: частота тона вычисляется по трём фурье-амплитудам
![$X_k$ $X_k$](https://dxdy-02.korotkov.co.uk/f/1/a/3/1a35cf75b6c416e1e4a2b594e79040e682.png)
в соседних бинах - около максимума спектрального пика и по обе стороны от него - по формулам (3) и (1) в статье.
Вот, что выходит для примера
B@R5uk с частотами
![$cyc2 = 27.75$ $cyc2 = 27.75$](https://dxdy-03.korotkov.co.uk/f/2/a/4/2a483cfe8d5071c3c95c1b644ddb6d7b82.png)
с частотой дискретизации
![$1/dt = num = 280.$ $1/dt = num = 280.$](https://dxdy-04.korotkov.co.uk/f/b/6/5/b65fe3794405770fef36fea83bd76d6982.png)
Беру (в Маткаде) в роли сигнала
![$s$ $s$](https://dxdy-03.korotkov.co.uk/f/6/f/9/6f9bad7347b91ceebebd3ad7e6f6f2d182.png)
первые
![$2^8=256$ $2^8=256$](https://dxdy-02.korotkov.co.uk/f/9/5/c/95c251ba77520fc3d86b361e30b0b33e82.png)
отсчётов. В массиве
![$X=\text{FFT}(s)$ $X=\text{FFT}(s)$](https://dxdy-02.korotkov.co.uk/f/d/4/5/d45f8571b21522701c5519cc2612956582.png)
смотрим амплитуды
![$|X_k|.$ $|X_k|.$](https://dxdy-02.korotkov.co.uk/f/1/b/e/1be42470a999327b9e517ec4356c4b0482.png)
Там виден локальный максимум при
![$k=5$ $k=5$](https://dxdy-04.korotkov.co.uk/f/b/e/8/be82cf66eb32e65bbf7472eed0fc86e582.png)
и ещё один максимум при
![$k=25.$ $k=25.$](https://dxdy-03.korotkov.co.uk/f/2/a/0/2a0d473b217073a0388f002ecc169a9a82.png)
Вычисляем для них значения
![$\delta_1$ $\delta_1$](https://dxdy-01.korotkov.co.uk/f/0/5/c/05c0545df5a118015e87a57e968327bf82.png)
и
![$\delta_2$ $\delta_2$](https://dxdy-02.korotkov.co.uk/f/5/c/c/5ccec8ab223ff1759193c9dbac4ea7fb82.png)
по формуле (3) из статьи:
![$\delta =-\text{Re} \left( \dfrac{X_{k+1}-X_{k-1}}{2X_k-X_{k+1}-X_{k-1}} \right).$ $\delta =-\text{Re} \left( \dfrac{X_{k+1}-X_{k-1}}{2X_k-X_{k+1}-X_{k-1}} \right).$](https://dxdy-02.korotkov.co.uk/f/1/9/1/19180314a67e664b54d99cd5b9ee911182.png)
У нас:
![$X_4=.0475868602+0.055390692i$ $X_4=.0475868602+0.055390692i$](https://dxdy-01.korotkov.co.uk/f/8/6/8/868bd51bbd6568cce1bca3540311c41682.png)
![$X_5=-0.1762312527-0.2516369141i$ $X_5=-0.1762312527-0.2516369141i$](https://dxdy-02.korotkov.co.uk/f/1/8/c/18c5e0e46bf26ccf54e331de01966a6182.png)
![$X_6=-0.027672292-0.0463420793i$ $X_6=-0.027672292-0.0463420793i$](https://dxdy-04.korotkov.co.uk/f/b/1/5/b15f5f6685064477f1018c93b1624b1382.png)
и
![$X_{24}=-0.0133080697-0.0328703847i$ $X_{24}=-0.0133080697-0.0328703847i$](https://dxdy-02.korotkov.co.uk/f/5/5/d/55db642a336c055e4311f180ddc9031382.png)
![$X_{25}=-0.0471254727-0.1119558947i$ $X_{25}=-0.0471254727-0.1119558947i$](https://dxdy-04.korotkov.co.uk/f/b/8/6/b867ce4b14e78897b56e914cacb27c6582.png)
![$X_{26}=0.0268346206+0.0611161691i$ $X_{26}=0.0268346206+0.0611161691i$](https://dxdy-02.korotkov.co.uk/f/d/a/e/dae34bf8e60019ad3ed0db3a7956faf682.png)
Получается:
![$\delta_1 = -0.199793$ $\delta_1 = -0.199793$](https://dxdy-02.korotkov.co.uk/f/9/9/8/99850de69b718508761f5ab3a04476c282.png)
и
![$\delta_2 = 0.372688.$ $\delta_2 = 0.372688.$](https://dxdy-04.korotkov.co.uk/f/b/a/1/ba1efff6e0e20058bd7298b893b1b2a282.png)
Вычисляем значения частот по формуле, соответствующей формуле (1) в статье:
![$tone=\dfrac{k+\delta}{dt \,256}$ $tone=\dfrac{k+\delta}{dt \,256}$](https://dxdy-04.korotkov.co.uk/f/b/7/a/b7a9a749a691d5d9d0eb28991a81a96982.png)
Результат:
![$tone1 = 5.25023$ $tone1 = 5.25023$](https://dxdy-01.korotkov.co.uk/f/4/4/b/44bfd60c91fab6ff896a889d393dc83782.png)
и
![$tone2 = 27.75138.$ $tone2 = 27.75138.$](https://dxdy-03.korotkov.co.uk/f/2/e/1/2e1db202a5532cecf9c3213e400a8a0682.png)
В обеих частотах таким простым путём удалось найти четыре верных знака!
(ещё пример с оконным кратковременным Фурье)
Одна из задач, где нет альтернативы оконному Фурье-преобразованию небольших блоков сигнала, притом в реальном времени, - радиоприёмники типа SDR. (Software-defined radio. Поиском по форуму я почему-то не нашёл упоминаний об SDR, поэтому приведу немного подробностей; извините, пожалуйста, если это общеизвестные банальности).
Вместо старинной шкалы с указателем одной принимаемой станции современный SDR изображает на экране компьютера "живую" спектрограмму сигналов в широкой полосе частот. Радиосигналы существенно нестационарны. Задача здесь состоит не в измерении отдельных гармоник, а в выборе (по качественному виду спектрограммы) для приёма
полосы частот и типа демодулятора. Боковые лепестки, если они и есть, тут погоды не делают.
По ссылке
http://www.websdr.org/ даётся некий список sdr-приёмников, раздающих принятые сигналы в интернет. Первый пункт в списке самый известный - это широкополосный приёмник в университете Twente:
http://websdr.ewi.utwente.nl:8901/Пояснение тем, кто знакомится с этим SDR впервые: для примера введите там в левом поле частоту 1008 kHz, тип модуляции нажмите АМ, в правом поле Waterfall zoom жмите +, чтобы шкала частот растянулась и появились названия станций. Мышью можно двигать серединку изображения АЧХ демодулятора под шкалой частот - тем самым перестраиваться со станции на станцию.
Без оконного Фурье, в смысле - без обновляемой в реальном времени спектрограммы, - такая замечательная штука была бы невозможна!