Qucs-S S-parameter Viewer & RF Synthesis Tools
Loading...
Searching...
No Matches
EllipticFilter.h
Go to the documentation of this file.
1
7
8#ifndef ELLIPTICFILTER_H
9#define ELLIPTICFILTER_H
10
11#include "Schematic/Network.h"
12#include "Schematic/component.h"
14
15class ComponentInfo;
16class WireInfo;
17
21class EllipticFilter : public Network {
22public:
24 EllipticFilter() { virtual_nodes = 0; }
25
28 EllipticFilter(FilterSpecifications FS) {
29 Specification = FS;
30 Cshunt_LP = new std::vector<double>(FS.order + 1);
31 Lseries_LP = new std::vector<double>(FS.order + 1);
32 Cseries_LP = new std::vector<double>(FS.order);
33 virtual_nodes = 0;
34 }
35
37 virtual ~EllipticFilter() {
38 delete Cshunt_LP;
39 delete Lseries_LP;
40 delete Cseries_LP;
41 }
42
44 void synthesize();
45
48 void setSemilumpedMode(bool mode) { this->semilumped = mode; }
49
50private:
51 FilterSpecifications Specification;
52
53 std::vector<double> *Cseries_LP;
54 std::vector<double> *Lseries_LP;
55 std::vector<double> *Cshunt_LP;
56 double RL;
57 bool semilumped = false;
58 unsigned int virtual_nodes;
59
62 void EllipticTypeS();
63
66 void EllipticTypesABC();
67
72 double Sn(double, double);
73
78 std::complex<double> Sn(double, std::complex<double>);
79
80 //*********** Schematic synthesis ********************
82 void SynthesizeEllipticFilter();
83
90 void InsertEllipticSection(int&, QMap<QString, unsigned int>&, int, bool,
91 bool);
92
94 void Insert_LowpassMinL_Section(int&, QMap<QString, unsigned int>&,
95 unsigned int, bool, bool);
96
98 void Insert_HighpassMinC_Section(int&, QMap<QString, unsigned int>&,
99 unsigned int, bool, bool);
100
102 void Insert_LowpassMinC_Section(int&, QMap<QString, unsigned int>&,
103 unsigned int, bool, bool);
104
106 void Insert_HighpassMinL_Section(int&, QMap<QString, unsigned int>&,
107 unsigned int, bool, bool);
108
110 void Insert_LowpassSemilumpedMinC_Section(int&, QMap<QString, unsigned int>&,
111 unsigned int, bool, bool);
112
114 void Insert_HighpassSemilumpedMinL_Section(int&, QMap<QString, unsigned int>&,
115 unsigned int, bool, bool);
116
118 void Insert_Bandpass_1_Section(int&, QMap<QString, unsigned int>&,
119 unsigned int, bool, bool);
120
122 void Insert_Bandpass_2_Section(int&, QMap<QString, unsigned int>&,
123 unsigned int, bool, bool);
124
126 void Insert_Bandstop_1_Section(int&, QMap<QString, unsigned int>&,
127 unsigned int, bool, bool);
128
130 void Insert_Bandstop_2_Section(int&, QMap<QString, unsigned int>&,
131 unsigned int, bool, bool);
132};
133#endif
Synthesize microstrip lines (definition)
Abstract base class for network implementations.
Component information container.
Definition infoclasses.h:18
Synthesizes elliptic filters Amstutz - "Elliptic Approximation and Elliptic Filter Design" (1978)
Definition EllipticFilter.h:21
void synthesize()
Performs complete elliptic filter synthesis.
Definition EllipticFilter.cpp:20
virtual ~EllipticFilter()
Destructor - cleans up dynamically allocated arrays.
Definition EllipticFilter.h:37
EllipticFilter()
Default constructor.
Definition EllipticFilter.h:24
EllipticFilter(FilterSpecifications FS)
Constructor with filter specifications.
Definition EllipticFilter.h:28
void setSemilumpedMode(bool mode)
Enables semi-lumped implementation mode.
Definition EllipticFilter.h:48
Abstract base class for network implementations.
Definition Network.h:27
Wire connection information.
Definition infoclasses.h:153
Graphical component representation in schematic (definition)