-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathPreprocessing.cpp
More file actions
48 lines (42 loc) · 1.19 KB
/
Preprocessing.cpp
File metadata and controls
48 lines (42 loc) · 1.19 KB
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
38
39
40
41
42
43
44
45
46
47
48
#include "stdafx.h"
#define _USE_MATH_DEFINES
#include <math.h>
#include <complex>
#include <vector>
#include "fftw3.h"
using namespace std;
void windowSignal(vector <double> signal, int sampleCount)
{
for (int sample = 0; sample < sampleCount; sample++)
{
double multiplier = 0.5 - 0.5 * cos((2 * M_PI*sample) / (sampleCount - 1));
signal[sample] = multiplier * signal[sample];
}
}
void DCOffset(vector <double> signal, int sampleCount)
{
double sampleSum = 0;
for (int sample = 0; sample < sampleCount; sample++)
{
sampleSum += signal[sample];
}
double sampleAverage = sampleSum / sampleCount;
for (int sample = 0; sample < sampleCount; sample++)
{
signal[sample] = signal[sample] - sampleAverage;
}
}
vector <double> downMix(double * signal, int sampleCount, int channelCount)
{
vector <double> monoSignal(sampleCount);
for (int sample = 0; sample < sampleCount; sample++)
{
double channelSignalSum = 0;
for (int channel = 0; channel < channelCount; channel++)
{
channelSignalSum = channelSignalSum + signal[sample * channelCount + channel];
}
monoSignal[sample] = channelSignalSum / channelCount;
}
return monoSignal;
}