-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathEndToEndTestConfig.m
More file actions
99 lines (83 loc) · 3.75 KB
/
Copy pathEndToEndTestConfig.m
File metadata and controls
99 lines (83 loc) · 3.75 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
classdef EndToEndTestConfig
%% ==========================================
%% ADC-POLYPHASE SYSTEM CONFIGURATION
%% ==========================================
properties (SetAccess = private)
ADCParams
DSPParams
end
methods
function obj = EndToEndTestConfig()
%% ==========================================
%% ADC PARAMETERS
%% ==========================================
obj.ADCParams = ADCParameters();
% Simulation / framing
obj.ADCParams.setValue("Fs", 20000);
obj.ADCParams.setValue("FrameLength", 31);
obj.ADCParams.setValue("Dur", 0.021);
obj.ADCParams.setValue("DF", 4);
% Signal generator
obj.ADCParams.setValue("Aburst", 0.5);
obj.ADCParams.setValue("mu", 0.004);
obj.ADCParams.setValue("Sigma", 0.001);
obj.ADCParams.setValue("Ad", 1.0);
obj.ADCParams.setValue("Ad2", 0.5);
obj.ADCParams.setValue("Lambda", 120);
obj.ADCParams.setValue("EST", 0.015);
obj.ADCParams.setValue("FData", 200);
obj.ADCParams.setValue("FData2", 400);
obj.ADCParams.setValue("An", 0.1);
obj.ADCParams.setValue("Fnoise", 7000);
obj.ADCParams.setValue("Anf", 1e-3);
obj.ADCParams.setValue("DC", 0.25);
% ADC filters
obj.ADCParams.setValue("FcHigh", 20);
obj.ADCParams.setValue("FcLow", 2000);
obj.ADCParams.setValue("nHpf", 4);
obj.ADCParams.setValue("nLpf", 6);
% HPF characterization specifications
obj.ADCParams.setValue("FstopHPF", 5);
obj.ADCParams.setValue("FpassHPF", 50);
obj.ADCParams.setValue("ApassHPF", 1);
obj.ADCParams.setValue("AstopHPF", 40);
% LPF characterization specifications
obj.ADCParams.setValue("FpassLPF", 1500);
obj.ADCParams.setValue("FstopLPF", 4000);
obj.ADCParams.setValue("ApassLPF", 1);
obj.ADCParams.setValue("AstopLPF", 40);
% FFT / STFT / Welch PSD analysis
obj.ADCParams.setValue("N", 512);
obj.ADCParams.setValue("STFTWindowLength", 128);
obj.ADCParams.setValue("STFTOverlapLength", 64);
obj.ADCParams.setValue("STFTFFTLength", 256);
obj.ADCParams.setValue("PSDWindowLength", 128);
obj.ADCParams.setValue("PSDOverlapLength", 64);
obj.ADCParams.setValue("PSDFFTLength", 256);
% ADC / AGC
obj.ADCParams.setValue("Vfs", 1.0);
obj.ADCParams.setValue("NumBits", 8);
obj.ADCParams.setValue("EnvAttack", 0.005);
obj.ADCParams.setValue("EnvRelease", 0.020);
obj.ADCParams.setValue("GainAttack", 0.005);
obj.ADCParams.setValue("GainRelease", 0.020);
obj.ADCParams.setValue("GateAttack", 0.005);
obj.ADCParams.setValue("GateRelease", 0.020);
%% ==========================================
%% DSP PARAMETERS
%% ==========================================
obj.DSPParams = DSPParameters();
obj.DSPParams.setValue("DcF", 4);
% The DSP input sampling rate is the ADC output sampling rate.
ADCOutputFs = ...
obj.ADCParams.getValue("Fs") / ...
obj.ADCParams.getValue("DF");
obj.DSPParams.setValue("Fs_DSP", ADCOutputFs);
obj.DSPParams.setValue("Fpass", 400);
obj.DSPParams.setValue("Fstop", 600);
obj.DSPParams.setValue("Astop", 60);
obj.DSPParams.setValue("Apass", 1);
obj.DSPParams.setValue("B", 25);
end
end
end