fbgsense 0.1
Generic FBG spectrum analysis tool
filter_fft.h
1/*
2 * This file is a part of the project "fbgsense", which is released under MIT license.
3 * Copyright (c) 2022 Daniel Múčka, Masaryk University, Faculty of Informatics
4 * See file LICENSE or visit https://opensource.org/licenses/MIT for full license details.
5 */
6
7#pragma once
8
9#include <numbers>
10#include <fftw3.h>
11
12#include "../spectrum_types.h"
13#include "filter.h"
14
15namespace fbgsense::filtering
16{
17 class filter_fft : public filter
18 {
19 public:
20 constexpr int get_type() override
21 {
22 return get_hash("FFT");
23 }
24
25 std::unique_ptr<filter> create() override
26 {
27 return std::make_unique<filter_fft>();
28 }
29
33 void perform(spectrum_state spect, std::initializer_list<parameter_t> params) override;
34 };
35}
Definition: filter_fft.h:18
constexpr int get_type() override
Gets the unique identifier of the concrete subclass. Used for equal-type checking....
Definition: filter_fft.h:20
void perform(spectrum_state spect, std::initializer_list< parameter_t > params) override
Filter the signal using Fourier transform.
std::unique_ptr< filter > create() override
Factory for the current concrete subclass.
Definition: filter_fft.h:25
Definition: filter.h:16
constexpr int get_hash(const char str[])
Java string hashing function. http://hg.openjdk.java.net/jdk8/jdk8/jdk/file/687fd7c7986d/src/share/cl...
Definition: processor.h:24
Data structure reflecting spectrum's current state. Used in processors.
Definition: spectrum_state.h:19