File indexing completed on 2024-05-12 03:47:53

0001 /*
0002     File                 : nsl_sf_window.h
0003     Project              : LabPlot
0004     Description          : NSL special window functions
0005     --------------------------------------------------------------------
0006     SPDX-FileCopyrightText: 2016 Stefan Gerlach <stefan.gerlach@uni.kn>
0007     SPDX-License-Identifier: GPL-2.0-or-later
0008 */
0009 
0010 #ifndef NSL_SF_WINDOW_H
0011 #define NSL_SF_WINDOW_H
0012 
0013 #include <stdlib.h>
0014 
0015 #define NSL_SF_WINDOW_TYPE_COUNT 15
0016 typedef enum {
0017     nsl_sf_window_uniform,
0018     nsl_sf_window_triangle,
0019     nsl_sf_window_triangleII,
0020     nsl_sf_window_triangleIII,
0021     nsl_sf_window_welch,
0022     nsl_sf_window_hann,
0023     nsl_sf_window_hamming,
0024     nsl_sf_window_blackman,
0025     nsl_sf_window_nuttall,
0026     nsl_sf_window_blackman_nuttall,
0027     nsl_sf_window_blackman_harris,
0028     nsl_sf_window_flat_top,
0029     nsl_sf_window_cosine,
0030     nsl_sf_window_bartlett_hann,
0031     nsl_sf_window_lanczos
0032 } nsl_sf_window_type;
0033 extern const char* nsl_sf_window_type_name[];
0034 
0035 /* u range: [0:1] or [0:N-1] ? */
0036 
0037 /* uniform */
0038 int nsl_sf_apply_window(double data[], size_t N, nsl_sf_window_type type);
0039 
0040 #endif /* NSL_SF_WINDOW_H */