11namespace MathCore . DSP . Filters . Builders ;
22
3+ /// <summary>Строитель фильтров Чебышева</summary>
34public readonly ref struct ChebyshevBuilder
45{
6+ /// <summary>Тип пропускания полосы частот</summary>
57 public FrequencyPassType PassType { get ; init ; }
68
9+ /// <summary>Период дискретизации</summary>
710 public double dt { get ; init ; }
811
12+ /// <summary>Частота дискретизации</summary>
913 public double fd { get => 1 / dt ; init => dt = 1 / value ; }
1014
15+ /// <summary>Тип фильтра Чебышева</summary>
1116 public ChebyshevType Type { get ; init ; }
1217
18+ /// <summary>ФНЧ</summary>
1319 public ChebyshevBuilder LowPass => this with { PassType = FrequencyPassType . LowPass } ;
20+
21+ /// <summary>ФВЧ</summary>
1422 public ChebyshevBuilder HighPass => this with { PassType = FrequencyPassType . HighPass } ;
23+
24+ /// <summary>ППФ</summary>
1525 public ChebyshevBuilder BandPass => this with { PassType = FrequencyPassType . BandPass } ;
26+
27+ /// <summary>ПЗФ</summary>
1628 public ChebyshevBuilder BandStop => this with { PassType = FrequencyPassType . BandStop } ;
1729
18- private readonly double ? _PassFrequency ;
19- private readonly double ? _StopFrequency ;
20- private readonly double ? _PassHighFrequency ;
21- private readonly double ? _StopHighFrequency ;
22-
23- private readonly int ? _Order ;
24-
25- private readonly double ? _Gp ;
26- private readonly double ? _Gs ;
27- private readonly double ? _Rp ;
28- private readonly double ? _Rs ;
29-
30- public double ? PassFrequency
31- {
32- get => _PassFrequency ;
33- init => _PassFrequency = value ;
34- }
35-
36- public double ? StopFrequency
37- {
38- get => _StopFrequency ;
39- init => _StopFrequency = value ;
40- }
41-
42- public double ? PassHighFrequency
43- {
44- get => _PassHighFrequency ;
45- init => _PassHighFrequency = value ;
46- }
47-
48- public double ? StopHighFrequency
49- {
50- get => _StopHighFrequency ;
51- init => _StopHighFrequency = value ;
52- }
53-
54- public int ? Order
55- {
56- get => _Order ;
57- init => _Order = value ;
58- }
59-
60- public double ? Gp
61- {
62- get => _Gp ;
63- init => _Gp = value ;
64- }
65-
66- public double ? Gs
67- {
68- get => _Gs ;
69- init => _Gs = value ;
70- }
71-
72- public double ? Rp
73- {
74- get => _Rp ;
75- init => _Rp = value ;
76- }
77-
78- public double ? Rs
79- {
80- get => _Rs ;
81- init => _Rs = value ;
82- }
30+ /// <summary>Частота пропускания</summary>
31+ public double ? PassFrequency { get ; init ; }
32+
33+ /// <summary>Частота заграждения</summary>
34+ public double ? StopFrequency { get ; init ; }
35+
36+ /// <summary>Верхняя частота пропускания</summary>
37+ public double ? PassHighFrequency { get ; init ; }
38+
39+ /// <summary>Верхняя частота заграждения</summary>
40+ public double ? StopHighFrequency { get ; init ; }
41+
42+ /// <summary>Порядок фильтра</summary>
43+ public int ? Order { get ; init ; }
44+
45+ /// <summary>Коэффициент передачи в полосе пропускания</summary>
46+ public double ? Gp { get ; init ; }
47+
48+ /// <summary>Коэффициент передачи в полосе заграждения</summary>
49+ public double ? Gs { get ; init ; }
50+
51+ /// <summary>Неравномерность в полосе пропускания (дБ)</summary>
52+ public double ? Rp { get ; init ; }
53+
54+ /// <summary>Затухание в полосе заграждения (дБ)</summary>
55+ public double ? Rs { get ; init ; }
8356}
0 commit comments