/*! ****************************************************************************
\ingroup WIN_GROUP
\fn int window(double* w, int n, int win_type, double param)
\brief 
Расчет функции оконного взвешивания

Функция рассчитывает периодическую или симметричную оконную функцию
в соответствии с параметром `win_type`. \n

Периодическая оконная функция используется для спектрального анализа,
а симметричная оконная функция может быть использована для синтеза 
КИХ-фильтров.

\param [in,out] w
Указатель на вектор оконной функции. \n
Размер вектора `[n x 1]`. \n
Память должна быть выделена. \n
Рассчитанная оконная функция будет помещена по данному адресу. \n 
\n

\param [in]  n
Размер вектора `w` оконной функции. \n 
\n

\param [in]  win_type
Комбинация флагов для задания типа оконной функции. \n
Для задания типа окна используется комбинация битовых масок
`DSPL_WIN_MASK | DSPL_WIN_SYM_MASK`. \n
Маска `DSPL_WIN_MASK` задает тип оконной функции.
Может принимать следующие значения: \n
\verbatim
-------------------------------------------------------------------------
Значение  DSPL_WIN_MASK      |  Описание
-----------------------------|-------------------------------------------
 DSPL_WIN_BARTLETT           | Непараметрическое окно Бартлетта
-----------------------------|-------------------------------------------
 DSPL_WIN_BARTLETT_HANN      | Непараметрическое окно Бартлетта-Ханна
-----------------------------|-------------------------------------------
 DSPL_WIN_BLACKMAN           | Непараметрическое окно Блэкмана 
-----------------------------|-------------------------------------------
 DSPL_WIN_BLACKMAN_HARRIS    | Непараметрическое окно Блэкмана-Харриса
-----------------------------|-------------------------------------------
 DSPL_WIN_BLACKMAN_NUTTALL   | Непараметрическое окно Блэкмана-Натталла
-----------------------------|-------------------------------------------
 DSPL_WIN_CHEBY              | Параметрическое окно Дольф-Чебышева. 
                             | Данное окно всегда является симметричным и
                             | игнорирует параметр  DSPL_WIN_SYM_MASK . 
                             | Параметр  param  задает уровень боковых 
                             | лепестков в дБ.
-----------------------------|-------------------------------------------
 DSPL_WIN_COS                | Непараметрическое косинус-окно
-----------------------------|-------------------------------------------
 DSPL_WIN_FLAT_TOP           | Непараметрическое окно с максимально 
                             | плоской вершиной
-----------------------------|-------------------------------------------
 DSPL_WIN_GAUSSIAN           | Параметрическое окно Гаусса
-----------------------------|-------------------------------------------
 DSPL_WIN_HAMMING            | Непараметрическое окно Хемминга
-----------------------------|-------------------------------------------
 DSPL_WIN_HANN               | Непараметрическое окно Ханна
-----------------------------|-------------------------------------------
 DSPL_WIN_KAISER             | Параметрическое окно Кайзера
-----------------------------|-------------------------------------------
 DSPL_WIN_LANCZOS            | Непараметрическое окно Ланкзоса
-----------------------------|-------------------------------------------
 DSPL_WIN_NUTTALL            | Непараметрическое окно Натталла
-----------------------------|-------------------------------------------
 DSPL_WIN_RECT               | Непараметрическое прямоугольное окно
-------------------------------------------------------------------------
\endverbatim
\n 
Маска `DSPL_WIN_SYM_MASK` задает симметричное 
или периодическое окно: \n
\verbatim
-------------------------------------------------------------------------
Значение  DSPL_WIN_SYM_MASK  | Описание
-----------------------------|-------------------------------------------
 DSPL_WIN_SYMMETRIC          | Симметричное окно (по умолчанию)
 DSPL_WIN_PERIODIC           | Периодическое окно
-------------------------------------------------------------------------
\endverbatim
 \n \n


\param [in]  param
Параметр окна. \n
Данный параметр применяется только для параметрических оконных функций. \n
Для непараметрических окон игнорируется. \n
\n


\return  
`RES_OK` если оконная функция рассчитана успешно. \n
В противном случае \ref ERROR_CODE_GROUP "код ошибки".

\author 
Бахурин Сергей. 
www.dsplib.org
***************************************************************************** */

