Вот еще один частичный ответ, в основном о разработке пользовательских окон. Я придумал это, когда делал что-то, что (как я знаю сейчас, но не знал) называется «оконным управлением в частотной области». Затем, после прочтения некоторых оригинальных работ по работе с окнами, я подумал, что, возможно, именно так были задуманы некоторые окна, но у меня нет никаких реальных знаний.
Начните с прямоугольного окна и посмотрите на его преобразование Фурье, функцию sinc:
Теперь, масштабируйте и (по частоте) сдвигайте два из них, так что боковые лепестки имеют тенденцию компенсировать друг друга при сложении вместе:
(Результат зеленого цвета; извините за плохое качество и бесполезную легенду.)
Как вы можете видеть, боковые доли не только уменьшены в целом, они также скатываются намного быстрее.
соз( πт )
Повторите этот процесс, и вы получите все лучшее и лучшее снижение за счет более широкой основной доли:
( потому что( πт ) )2N( потому что( πт ) )Nn = 4N
Среди окон Blackman-Harris они дают самый быстрый боковой спад. (Я начал записывать доказательство этого, но даже не закончил его, потому что, как рассчитать спад и другие параметры, как известно специалистам.)
Если вы хотите оптимизировать что-то еще, кроме свертывания, вы можете начать с окна, которое имеет достаточный спад, затем сделать что-то похожее на описанное выше, но масштабировать и сдвигать другим способом (обычно используя три члена вместо двух). , Это сохранит спад точно такой же, но позволит вам уменьшить, например, первые боковые лепестки.
Надеюсь это поможет. Веселиться.