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
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
|
import dash_html_components as html
import dash_bootstrap_components as dbc
dsp_config_tooltips = html.Div([
# Antenna arrangement selection
dbc.Tooltip([
html.P("ULA - Uniform Linear Array"),
html.P("Antenna elements placed on a line with having equal distances between each other"),
html.P("UCA - Uniform Circular Array"),
html.P("Antenna elements are placed on circle equaly distributed on 360°")],
target="label_ant_arrangement",
placement="bottom",
className="tooltip"
),
# Antenna Spacing
# dbc.Tooltip([
# html.P("When ULA is selected: Spacing between antenna elements"),
# html.P("When UCA is selected: Radius of the circle on which the elements are placed")],
# target="label_ant_spacing",
# placement="bottom",
# className="tooltip"
# ),
# Enable F-B averaging
dbc.Tooltip([
html.P("Forward-backward averegaing improves the performance of DoA estimation in multipath environment"),
html.P("(Available only for ULA antenna systems)")],
target="label_en_fb_avg",
placement="bottom",
className="tooltip"
),
])
daq_ini_config_tooltips = html.Div([
# DAQ buffer size
dbc.Tooltip([
html.P("Buffer size of the realtek driver")],
target="label_daq_buffer_size",
placement="bottom",
className="tooltip"
),
# Sampling frequency
dbc.Tooltip([
html.P("Raw - ADC sampling frequency of the realtek chip")],
target="label_sample_rate",
placement="bottom",
className="tooltip"
),
# Enable noise source control
dbc.Tooltip([
html.P("Enables the utilization of the built-in noise source for calibration")],
target="label_en_noise_source_ctr",
placement="bottom",
className="tooltip"
),
# Enable squelch mode
dbc.Tooltip([
html.P("Enable DAQ-side squelch to capture burst like signals - NOTE DISABLED IN THIS VERSION, THIS VERSION USES DSP SIDE SQUELCH ONLY")],
target="label_en_squelch",
placement="bottom",
className="tooltip"
),
# Squelch threshold
dbc.Tooltip([
html.P("Amplitude threshold used for the squelch feature."),
html.P("Should take values on range: 0...1"),
html.P("When set to zero the squelch is bypassed")],
target="label_squelch_init_threshold",
placement="bottom",
className="tooltip"
),
# CPI size
dbc.Tooltip([
html.P("Length of the Coherent Processing Interval (CPI) after decimation")],
target="label_cpi_size",
placement="bottom",
className="tooltip"
),
# Decimation raito
dbc.Tooltip([
html.P("Decimation factor")],
target="label_decimation_ratio",
placement="bottom",
className="tooltip"
),
# FIR relative bandwidth
dbc.Tooltip([
html.P("Anti-aliasing filter bandwith after decimation"),
html.P("Should take values on range: (0, 1]"),
html.P("E.g.: ADC sampling frequency: 1 MHz (IQ!) , Decimation ratio: 2, FIR relative bandwith:0.25"),
html.P("Resulting passband bandwidth: 125 kHz ")],
target="label_fir_relative_bw",
placement="bottom",
className="tooltip"
),
# FIR tap size
dbc.Tooltip([
html.P("Anti-aliasing FIR filter tap size - Do not set too large, or CPU utilization will be 100%"),
html.P("Should be greater than the decimation ratio")],
target="label_fir_tap_size",
placement="bottom",
className="tooltip"
),
# FIR tap size
dbc.Tooltip([
html.P("Window function type for designing the anti-aliasing FIR filter"),
html.P("https://en.wikipedia.org/wiki/Window_function")],
target="label_fir_window",
placement="bottom",
className="tooltip"
),
# Enable filter reset
dbc.Tooltip([
html.P("If enabled, the memory of the anti-aliasing FIR filter is reseted at the begining of every new CPI")],
target="label_en_filter_reset",
placement="bottom",
className="tooltip"
),
# Correlation size
dbc.Tooltip([
html.P("Number of samples used for the calibration procedure (sample delay and IQ compensation)")],
target="label_correlation_size",
placement="bottom",
className="tooltip"
),
# Standard channel index
dbc.Tooltip([
html.P("The selected channel is used as a reference for the IQ compensation")],
target="label_std_ch_index",
placement="bottom",
className="tooltip"
),
# Enable IQ calibration
dbc.Tooltip([
html.P("Enables to compensate the amplitude and phase differences of the receiver channels")],
target="label_en_iq_calibration",
placement="bottom",
className="tooltip"
),
# Gain lock interval
dbc.Tooltip([
html.P("Minimum number of stable frames before terminating the gain tuning procedure")],
target="label_gain_lock_interval",
placement="bottom",
className="tooltip"
),
# Require track lock intervention
dbc.Tooltip([
html.P("When enabled the DAQ firmware waits for manual intervention during the calibraiton procedure"),
html.P("Should be used only for hardave version 1.0")],
target="label_require_track_lock",
placement="bottom",
className="tooltip"
),
# Amplitude calibraiton mode
dbc.Tooltip([
html.P("Amplitude difference compensation method applied as part of the IQ compensation"),
html.P("default: Amplitude differences are estimated by calculating the cross-correlations of the channels"),
html.P("disabled: Amplitude differences are not compensated"),
html.P("channel_power: Ampltiude compensation is set in a way to achieve equal channel powers")],
target="label_amplitude_calibration_mode",
placement="bottom",
className="tooltip"
),
dbc.Tooltip([
html.P("When periodic calibration track mode is selected the firmware regularly turn on the noise source for a short burst to\
check whether the IQ calibration is still valid or not. In case the calibrated state is lost, the firmware automatically\
initiates a reclaibration procedure")],
target="label_calibration_track_mode",
placement="bottom",
className="tooltip"
),
# Calibration frame interval
dbc.Tooltip([
html.P("Number of data frames between two consecutive calibration burst. Used when periodic calibration mode is selected")],
target="label_calibration_frame_interval",
placement="bottom",
className="tooltip"
),
# Calibration frame burst size
dbc.Tooltip([
html.P("Number of calibration frames generated in the periodic calibration mode")],
target="label_calibration_frame_burst_size",
placement="bottom",
className="tooltip"
),
# Amplitude tolerance
dbc.Tooltip([
html.P("Maximum allowed amplitude difference between the receiver channels")],
target="label_amplitude_tolerance",
placement="bottom",
className="tooltip"
),
# Phase tolerance
dbc.Tooltip([
html.P("Maximum allowed phase difference between the receiver channels")],
target="label_phase_tolerance",
placement="bottom",
className="tooltip"
),
# Maximum sync fails
dbc.Tooltip([
html.P("Maximum allowed consecutive IQ difference check failures before initiating a recalibration")],
target="label_max_sync_fails",
placement="bottom",
className="tooltip"
),
])
|