после этого выбрасываем

высокочастотных гармоник (

), к полученному результату применяем обратное БПФ и возвращаем результат оттуда, откуда взяли.
Плохой подход. На стыках окон будут скачки. Если обрабатываемый сигнал — звук, то в результате будет слышен треск. Простейший подход к решению этой проблемы — использовать перекрывающиеся окна с некоторой функцией усреднения на перекрытии (типа того, как в программах редактирования и сведения звука при перекрытии фрагментов можно выбрать форму перехода одного в другой).
Если в сигнале убираются верхние

гармоник для любого

, и на что влияет выбор

?
Каждый раз, когда в обрабатываемом сигнале имеется локализованная по времени особенность, в спектре сигнала эта особенность занимает
весь частотный промежуток. Вы удаляете верхние гармоники, временная особенность уменьшается по энергии (что очевидно), но в то же время растекается по времени (хотя бы потому, что представляется гармониками меньшей частоты). Практика показывает, что растекание в той или иной степени происходит
на весь временной промежуток (длины K).
Далее, ваш подход с окнами не очень хорош, в том плане, что у вас
всегда есть хотя бы одна
особенность во временном представлении, а именно — скачок и/или излом сигнала на стыке границ отрезка. Дело в том, что преобразование Фурье — это не просто преобразование на отрезке. Это преобразование на отрезке с замкнутыми концами (топологически это будет эквивалентно кругу). Если вы сдвинете сигнал вдоль этого круга, то всё, что изменится в спектре — это добавится фиксированный сдвиг фаз ко всем гармоникам по определённому закону. Распределение энергии по частотам при этом никак не изменится. Произведя такой сдвиг, частотная особенность на стыке концов станет очевидной.
Оконная функция опять же является простейшим решением этой проблемы. Только вы теперь должны её применять два раза: первый раз до БФП и обработки спектра, для того, чтобы уничтожить особенность стыка обрезанных концов, второй раз — после обратного БФП, чтобы гладко сшить перекрывающиеся фрагменты. Поэтому придётся два раза умножать на квадратный корень из оконной функции. Ну, или придумать что-нибудь по-хитрее.
Величина
K является компромиссом между частотным разрешением и размытием обработанного сигнала по времени.
Вообще, преобразование Фурье хоть и является очень быстрым, интуитивно понятным и простым инструментом для частотной манипуляции временных сигналов, оно не является наилучшим. Вот, допустим, вы учли все рекомендации и сделали НЧ-фильтр на его основе. Когда вы пропускаете через него тестовый синусоидальный сигнал с частотой из области прохождения, в результате вы получаете очень похожий сигнал, но походу он наберёт пачку перекрёстных гармоник (кроме случаев, когда частота синуса является
в точности одной из частот гребёнки БФП). Да, их амплитуда будет мала, а если исходный сигнал уже имеет шум, они даже будут потоплены в этом шуме. Но факт остаётся фактом: такой фильтр будет
нелинейным и будет добавлять левые гармоники в сигнал.
В этом плане обычные цифровые фильтры и быстрее, и являются линейными, и временное размытие небольшое (смотри отклик фильтра на дельта-импульс). Фурье (а ещё лучше вейвлеты) применяют тогда, когда надо делать хитрые нелинейные манипуляции с сигналом на основе его спектра: типа выделения определённых сигналов из смеси, подавления голоса или ударных, растяжения музыки во времени без изменения высоты звука или ещё чего в этом духе.