gaoweidong
2026-01-13 c5eeada2c735b0209a061a233483c5cfc29c2230
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
#ifndef _WINDOWS_FUNC_HH_75238409574302950
#define _WINDOWS_FUNC_HH_75238409574302950
#include "const.h"
 
#define BESSELI_K_LENGTH 10 // ±´Èû¶ûº¯ÊýÕ¹¿ªÏîÊý
class Windows
{
private:
    /**
    * @brief Áã½×µÚÒ»ÀàÐÞÕý±´Èû¶ûº¯Êý I0(x) ÊµÏÖ
    * @param x ×Ô±äÁ¿
    * @param n_terms ¼¶ÊýÕ¹¿ªÏîÊý
    * @return I0(x) µÄ½üËÆÖµ
    */
    double besseli(double x, int n_terms = BESSELI_K_LENGTH);
public:
    void RectangleWin(double* w, int n);
    void TriangularWin(double* w, int n);
    void HannWin(double* w, int n);
    void HammingWin(double* w, int n);
    void KaiserWin(double* w, int n, double beta = 5.65);
    void BlackManWin(double* w, int n);
 
};
 
#endif