My Project
0.0.16
QUCS Mapping
Main Page
Related Pages
Namespaces
Classes
Files
File List
File Members
All
Classes
Namespaces
Files
Functions
Variables
Typedefs
Enumerations
Enumerator
Friends
Macros
Pages
DownLoad
QUCS-src
qucs-0.0.16
qucs-filter
qf_cauer.h
Go to the documentation of this file.
1
/***************************************************************************
2
qf_cauer.h
3
--------------
4
begin : Mon Jan 02 2006
5
copyright : (C) 2006 by Vincent Habchi, F5RCS
6
email : 10.50@free.fr
7
***************************************************************************/
8
9
/***************************************************************************
10
* *
11
* This program is free software; you can redistribute it and/or modify *
12
* it under the terms of the GNU General Public License as published by *
13
* the Free Software Foundation; either version 2 of the License, or *
14
* (at your option) any later version. *
15
* *
16
***************************************************************************/
17
18
#ifndef _QF_CAUER_H
19
#define _QF_CAUER_H
20
21
const
qf_double_t
SN_ACC
= 1
e
-5;
// Accuracy of sn(x) is SN_ACC^2
22
const
qf_double_t
K_ERR1
= 1
e
-8;
// Accuracy of K(k)
23
const
qf_double_t
K_ERR2
= 1
e
-20;
// Accuracy of K(k)
24
const
qf_double_t
K_ERR3
= 1
e
-6;
// Accuracy of K(k)
25
const
qf_double_t
K_ERR
= 4
e
-16;
// Accuracy of K (k)
26
const
qf_double_t
SK_ERR
=
sqrt
(
K_ERR
);
// Accuracy of sn (u, k)
27
28
class
qf_cauer
:
public
qf_filter
29
{
30
private
:
31
32
// Standard parameters
33
qf_double_t
rho;
// Reflection coeff.
34
qf_double_t
th;
// Modular angle
35
36
// Zeros of transmission
37
qf_double_t
* a;
38
39
public
:
40
qf_cauer
(
unsigned
,
qf_double_t
,
qf_double_t
);
41
qf_cauer
(
qf_double_t
,
qf_double_t
,
qf_double_t
,
qf_double_t
,
qf_double_t
,
42
qf_double_t
,
qft
);
43
virtual
~qf_cauer
(
void
);
44
45
// Elliptic functions
46
static
qf_double_t
K
(
qf_double_t
);
47
static
qf_double_t
Kp
(
qf_double_t
);
48
static
qf_double_t
sn
(
qf_double_t
,
qf_double_t
);
49
static
qf_double_t
ellip_RF
(
qf_double_t
,
qf_double_t
,
qf_double_t
);
50
static
qf_double_t
ellip_K
(
qf_double_t
);
51
static
qf_double_t
ellip_sncndn
(
qf_double_t
,
qf_double_t
,
52
qf_double_t
&,
qf_double_t
&,
qf_double_t
&);
53
static
qf_double_t
ellip_sn
(
qf_double_t
,
qf_double_t
);
54
55
// Computes standard form
56
void
normalize
(
qf_double_t
,
qf_double_t
,
qf_double_t
,
qft
);
57
58
void
xfer
(
void
);
// Computes xfer fctn
59
void
values
(
void
);
// Computes norm values
60
virtual
void
synth
(
qft
);
// Standard -> Actual form
61
void
dump
(
void
);
// Dumps to cout
62
};
63
64
#endif // _QF_CAUER_H
Generated on Tue Dec 25 2012 14:30:36 for My Project by
1.8.2