ENERGY MONITOR 0.2
Loading...
Searching...
No Matches
signal_operation.h
Go to the documentation of this file.
1#pragma once
2#include "signal.h"
3
4
5
13//Scalar with signal or signal with signal operations
14//FRIEND CLASS TO SIGNALS CAN EDIT THEIR VALUES
15
20
21
22
23
25 private:
26 bool lastOperationSuccess;
27 static float samplingRate_diff;
28 static float freq_diff_accuracy;
29 public:
30 //signal with a signal arthimetic
31 signal add(signal& base_sig1, signal& base_sig2, int mode = INTERSECT){
32 signal temp;
33 add(base_sig1,base_sig2,temp,mode);
34 return temp;
35 }
36
37 void add(signal& base_sig1, signal& base_sig2, signal& resultant, int mode = INTERSECT);
38
39 signal multiply(signal& base_sig1, signal& base_sig2, int mode = INTERSECT){
40 signal temp;
41 multiply(base_sig1,base_sig2,temp,mode);
42 return temp;
43 }
44
45 void multiply(signal& base_sig1, signal& base_sig2, signal& resultant, int mode = INTERSECT);
46 double phase_diff(signal& base_sig1, signal& base_sig2);
47
48 double integ_vpower(signal base_sig1, int power);
49
50
51 //Scalar with a signal arthimetic
52 signal add(signal &base_sig1, double val){
53 signal temp;
54 add(base_sig1, temp, val);
55 return temp;
56 }
57 void add(signal &base_sig1, signal &resultant, double val);
58 signal multiply(signal &base_sig1, double val){
59 signal temp;
60 multiply(base_sig1, temp, val);
61 return temp;
62 }
63 void multiply(signal &base_sig1, signal &resultant , double val);
65
66
74 void firstO_lowPass_filter(signal& base_sig, signal& resultant,double cutOff_freq,int order=1, double avg_sample_time = -1);
75 signal highPass_filter(signal base_sig, int order=1);
76 signal bangReject_filter(signal base_sig, int order=1);
77 signal bandPass_filter(signal base_sig, int order=1);
78 signal factor_frequency(signal base_sig, float increase_ratio);
79
81 signal toSignal(std::vector<double> value, std::vector<double> time);
83 signal toSignal(std::vector<std::vector<double>> table);
84
85
86
87
94 bool subsignal_time_based(signal &base_sig, signal &sub_sig, double time_start, double time_end);
95 //extracts a subset of a signal with value boundaries
96 signal subsignal_value_based(signal &base_sig, double value1, double value2);
97 //extract a subset of a signal starting from a value for a certain period
98 signal subsignal_value_time_based(signal &base_sig, double value1, double time_after);
99
100 signal timeShift(signal &base_sig, double timeShift);
101 signal concatenate(signal firstSignal, signal secondSignal);
102
103
105 return lastOperationSuccess;
106 }
107
108 static void refreshSettings();
109
110};
111
signal bangReject_filter(signal base_sig, int order=1)
signal add(signal &base_sig1, signal &base_sig2, int mode=INTERSECT)
signal multiply(signal &base_sig1, double val)
bool subsignal_time_based(signal &base_sig, signal &sub_sig, double time_start, double time_end)
create subSignal from bigger ones based on time boundaries
signal concatenate(signal firstSignal, signal secondSignal)
double phase_diff(signal &base_sig1, signal &base_sig2)
calculates phase difference based on maximas and minimas times
signal multiply(signal &base_sig1, signal &base_sig2, int mode=INTERSECT)
signal toSignal(std::vector< std::vector< double > > table)
takes a vector of vectors one for time and and the other for values respectively and returns a signal
signal highPass_filter(signal base_sig, int order=1)
signal subsignal_value_time_based(signal &base_sig, double value1, double time_after)
signal add(signal &base_sig1, double val)
signal factor_frequency(signal base_sig, float increase_ratio)
double integ_vpower(signal base_sig1, int power)
signal timeShift(signal &base_sig, double timeShift)
signal subsignal_value_based(signal &base_sig, double value1, double value2)
void firstO_lowPass_filter(signal &base_sig, signal &resultant, double cutOff_freq, int order=1, double avg_sample_time=-1)
first order IIR(INFINITE IMPULSE RESPONSE) low pass filter output = (1 - filter_parameter)*last_out...
signal toSignal(std::vector< double > value, std::vector< double > time)
takes two Vectors one for time and and the other for values respectively and returns a signal
signal bandPass_filter(signal base_sig, int order=1)
static void refreshSettings()
signal logarithmic(signal *base_sig)
Definition core.h:184
signal class the parent class for every other signal or any form of time-sorted (time,...
Definition signal.h:39
this file includes the base class "signal" for signals modeling and analysing thier time-domain / fre...
operation_mode
@ UNION
@ INTERSECT
_signal_operation signal_operation_global