DPsim
Loading...
Searching...
No Matches
FIRFilter.h
Go to the documentation of this file.
1/* Copyright 2017-2021 Institute for Automation of Complex Power Systems,
2 * EONERC, RWTH Aachen University
3 *
4 * This Source Code Form is subject to the terms of the Mozilla Public
5 * License, v. 2.0. If a copy of the MPL was not distributed with this
6 * file, You can obtain one at https://mozilla.org/MPL/2.0/.
7 *********************************************************************************/
8
9#pragma once
10
11#include <vector>
12
15#include <dpsim-models/Task.h>
16
17namespace CPS {
18namespace Signal {
19class FIRFilter : public SimSignalComp, public SharedFactory<FIRFilter> {
20protected:
21 std::vector<Real> mSignal;
22 std::vector<Real> mFilter;
23
27
28 void incrementIndex();
29 Int getIndex(Int index);
30
31public:
35
37 Logger::Level logLevel = Logger::Level::off);
38 FIRFilter(String name, std::vector<Real> filterCoefficients,
39 Real initSample = 1, Logger::Level logLevel = Logger::Level::off);
40
41 void initialize(Real timeStep);
42 void step(Real time);
45
46 class Step : public Task {
47 public:
48 Step(FIRFilter &filter) : Task(**filter.mName + ".Step"), mFilter(filter) {
49 mAttributeDependencies.push_back(filter.mInput);
50 mModifiedAttributes.push_back(filter.mOutput);
51 }
52
53 void execute(Real time, Int timeStepCount);
54
55 private:
57 };
58};
59} // namespace Signal
60} // namespace CPS
AttributePointer< Attribute< T > > Ptr
Definition Attribute.h:250
String uid()
Returns unique id.
spdlog::level::level_enum Level
Definition Logger.h:33
Step(FIRFilter &filter)
Definition FIRFilter.h:48
void execute(Real time, Int timeStepCount)
Definition FIRFilter.cpp:45
void setInput(Attribute< Real >::Ptr input)
Definition FIRFilter.cpp:61
const Attribute< Real >::Ptr mOutput
Definition FIRFilter.h:32
const Attribute< Real >::Ptr mInitSample
This is never explicitely set to reference anything, so the outside code is responsible for setting u...
Definition FIRFilter.h:34
Attribute< Real >::Ptr mInput
Definition FIRFilter.h:24
std::vector< Real > mFilter
Definition FIRFilter.h:22
FIRFilter(String uid, String name, Logger::Level logLevel=Logger::Level::off)
Definition FIRFilter.cpp:14
void initialize(Real timeStep)
Definition FIRFilter.cpp:27
Int getIndex(Int index)
Definition FIRFilter.cpp:57
Task::List getTasks()
Definition FIRFilter.cpp:49
std::vector< Real > mSignal
Definition FIRFilter.h:21
void step(Real time)
Definition FIRFilter.cpp:32
SimSignalComp(String uid, String name, Logger::Level logLevel=Logger::Level::off)
std::vector< AttributeBase::Ptr > mModifiedAttributes
Definition Task.h:53
std::vector< AttributeBase::Ptr > mAttributeDependencies
Definition Task.h:52
Task()
Definition Task.h:30
std::vector< Ptr > List
Definition Task.h:28
std::string mName
Definition Task.h:51
std::string String
Definition Definitions.h:65
double Real
Definition Definitions.h:62
int Int
Definition Definitions.h:61