-
Notifications
You must be signed in to change notification settings - Fork 0
/
dft.h
37 lines (34 loc) · 1.25 KB
/
dft.h
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
27
28
29
30
31
32
33
34
35
36
37
//---------------------------------------------------------------------------
#ifndef dftH
#define dftH
/* Источники:
1. Шнеерсон, Цифровая РЗ, Энергопромиздат, 2007
*/
//---------------------------------------------------------------------------
#include "Vector.h"
//---------------------------------------------------------------------------
//---------------------------------------------------------------------------
/* ---- Базовый класс для цифрового преобразователя ---- */
class DSP{ // Digital Signal Progessing
protected:
double T; //период дискретизации
double w; //частота основной гармоники (радианы)
double q; //изменение угла на одну выборку (радианы) q=w*T
double* sample; //выборки
unsigned int M; //запомнено выборок
unsigned int oldest; //самый старый элемент выборки
public:
unsigned int N; //число выборок
virtual Vector calc(double &sample) = 0;
DSP(double &T, unsigned N);
~DSP();
};
/* ---- Быстродействующий Фильтр Фурье ортогональных составляющих ----
(произвожится расчет характеристик сигнала до того как пройдет
период основной частоты, гл.3.6.4 [1])*/
class FFT : public DSP { // Fast Fourier Transform
public:
Vector calc(double &new_samlpe);
FFT(double &T, unsigned N):DSP(T,N){};
};
#endif