Имеется поток данных, для начала давайте их отфильтруем наложив прямоугольное окно размером n отсчетов, значение оконной функции внутри окна 1, вне окна 0. Простой способ это сделать за константное время на один отсчет это иметь кольцевой буфер на n отчетов и после первоначального накопления добавлять к сумме разницу между текущим отсчетом x и отсчетом за номером x-n.
Теперь усложним задачу и оконную функцию зададим как, скажем, cos (2 pi * t/n) + cos (4 * pi * t / n) + 2 где t меняется от 0 до n-1. При этом мы хотим иметь то же самое свойство, как и у простого фильтра - константное время на вычисление выходного отсчета.
Еще одна задача
-
- Уже с Приветом
- Posts: 4468
- Joined: 21 Sep 2000 09:01
- Location: Sammamish, WA
Еще одна задача
Cheers
-
- Уже с Приветом
- Posts: 1008
- Joined: 24 Mar 2010 21:14
- Location: SFBA
Re: Еще одна задача
Толстый намек:
sin(α + β) = sinα cosβ + cosα sinβ
cos(α + β) = cosα cosβ - sinα sinβ
sin(α + β) = sinα cosβ + cosα sinβ
cos(α + β) = cosα cosβ - sinα sinβ
-
- Уже с Приветом
- Posts: 1008
- Joined: 24 Mar 2010 21:14
- Location: SFBA
Re: Еще одна задача
Что-то никто не подхватывает. Имхо, слишком много специальной терминологии в условии - фильтр, окно, отсчеты,...
-
- Уже с Приветом
- Posts: 4827
- Joined: 15 May 2001 09:01
Re: Еще одна задача
Терминология-то как раз понятная. И решать - тоже понятно как. А вот смысл: зачем на смену прямоугольнику,как чёртики из табакерки, вылезли именно косинусы, а не классическая действительная экспонента, стоило бы объяснить.
-
- Уже с Приветом
- Posts: 1008
- Joined: 24 Mar 2010 21:14
- Location: SFBA
Re: Еще одна задача
На правах рекламы -
helg, а вы заметили, что в соседнем топике ваше решение было повержено? И поиск лучшего еще не закончен.
viewtopic.php?p=6006523#p6006523
helg, а вы заметили, что в соседнем топике ваше решение было повержено? И поиск лучшего еще не закончен.
viewtopic.php?p=6006523#p6006523
-
- Уже с Приветом
- Posts: 4468
- Joined: 21 Sep 2000 09:01
- Location: Sammamish, WA
Re: Еще одна задача
Классичская действительная экспонента не имеет свойства иметь нулевую первую производную ни при каком значении аргумента. С косинусом/синусом или с експонентой компексного агрумента этого можно легко достичь. А нулевая первая производная оконной функции на краях окна (вдобавок к нулевому значению функции окна) часто бывает полезна.helg wrote:Терминология-то как раз понятная. И решать - тоже понятно как. А вот смысл: зачем на смену прямоугольнику,как чёртики из табакерки, вылезли именно косинусы, а не классическая действительная экспонента, стоило бы объяснить.
Cheers
-
- Уже с Приветом
- Posts: 4468
- Joined: 21 Sep 2000 09:01
- Location: Sammamish, WA
Re: Еще одна задача
Понятно . Но также интересны некоторые тонкости потенциальных решений, например, как обходиться с накопление ошибки при операциях с правающей точкой. Если решение базируется на чем-то более изысканном, чем плавающая точка, тоже будет интересно посмотреть.Berlaga wrote:Толстый намек:
sin(α + β) = sinα cosβ + cosα sinβ
cos(α + β) = cosα cosβ - sinα sinβ
Cheers