12 constexpr
double freqSine = 1;
17 [[clang::optnone]]
int
20 constexpr
double T = 2;
21 constexpr
double f_s = 8;
22 constexpr
size_t numPoints = T *
f_s;
25 std::vector<double> inputData;
26 for (
int i = 0;
i < numPoints;
i++) {
31 for (
const auto & num : inputData) {
32 std::cout << std::setprecision(5) << num <<
", ";
34 std::cout << std::endl;
35 std::cout << std::endl;
36 std::cout << std::endl;
38 auto dftres =
dft(inputData);
39 auto fftres =
fft(inputData);
41 for (
const auto & num : dftres) {
42 std::cout << std::setprecision(5) <<
std::abs(num) <<
", ";
44 std::cout << std::endl;
45 std::cout << std::endl;
46 std::cout << std::endl;
48 for (
const auto & num : fftres) {
49 std::cout << std::setprecision(5) <<
std::abs(num) <<
", ";
51 std::cout << std::endl;
52 std::cout << std::endl;
53 std::cout << std::endl;
56 auto idftres =
idft(dftres);
57 for (
const auto & num : idftres) {
58 std::cout << std::setprecision(5) << std::real(num) <<
", ";
60 std::cout << std::endl;
61 std::cout << std::endl;
62 std::cout << std::endl;
64 auto ifftres =
ifft(dftres);
65 for (
const auto & num : ifftres) {
66 std::cout << std::setprecision(5) << std::real(num) <<
", ";
68 std::cout << std::endl;
69 std::cout << std::endl;
70 std::cout << std::endl;
std::vector< std::complex< T > > ifft(const std::vector< std::complex< T > > &inputData)
std::vector< std::complex< T > > fft(const std::vector< T > &inputData)
std::vector< std::complex< T > > dft(const std::vector< T > &inputData)
std::vector< std::complex< T > > idft(const std::vector< std::complex< T > > &inputData)
double myFunctionToSample(double t)
end if abs(real(dotprod))>rstoerst rstoerst