Lab043: add hardware diagnostics and HackRF comparison tools
This commit is contained in:
@@ -0,0 +1,205 @@
|
||||
{
|
||||
"experiment": "Lab043 HackRF RX gain ladder with one continuous tone",
|
||||
"started_utc": "2026-08-20T15:51:40.472441Z",
|
||||
"physical_scheme": "Pluto+ TX -> SMA -> AT30S 30 dB -> HackRF RX; antennas removed",
|
||||
"method": "one continuous cyclic Pluto tone; separate short HackRF RX sessions per gain point",
|
||||
"fixed_gain_ladder": [
|
||||
[
|
||||
0,
|
||||
0
|
||||
],
|
||||
[
|
||||
8,
|
||||
8
|
||||
],
|
||||
[
|
||||
16,
|
||||
8
|
||||
],
|
||||
[
|
||||
16,
|
||||
16
|
||||
],
|
||||
[
|
||||
24,
|
||||
16
|
||||
],
|
||||
[
|
||||
24,
|
||||
24
|
||||
]
|
||||
],
|
||||
"fixed_thresholds": {
|
||||
"desirable_tone_over_noise_db": 35.0,
|
||||
"near_limit_component": 0.9,
|
||||
"preferred_max_component": 0.75,
|
||||
"clipped_component": 0.9921875,
|
||||
"near_limit_fraction_stop": 0.0001,
|
||||
"nonlinear_harmonic_limit_dbc": -30.0
|
||||
},
|
||||
"pluto_preflight": {
|
||||
"uri": "ip:192.168.2.1",
|
||||
"context_opened": true,
|
||||
"phy_name": "ad9361-phy",
|
||||
"tx_device_name": "cf-ad9361-dds-core-lpc",
|
||||
"first_tx_channel": "voltage0"
|
||||
},
|
||||
"hackrf_preflight": {
|
||||
"model": "HackRF One",
|
||||
"serial_number": "000000000000000097c063dc323b97d3",
|
||||
"firmware_version": "2024.02.1 (API:1.08)",
|
||||
"libhackrf_version": "2024.02.1 (0.9)",
|
||||
"hardware_revision": "r9",
|
||||
"hackrf_info_version": "2024.02.1",
|
||||
"information_query": "hackrf_info version: 2024.02.1\nlibhackrf version: 2024.02.1 (0.9)\nFound HackRF\nIndex: 0\nSerial number: 000000000000000097c063dc323b97d3\nBoard ID Number: 4 (HackRF One)\nFirmware Version: 2024.02.1 (API:1.08)\nPart ID Number: 0xa000cb3c 0x00744f5a\nHardware Revision: r9\nHardware does not appear to have been manufactured by Great Scott Gadgets.\nHardware supported by installed firmware:\n HackRF One",
|
||||
"requested_center_frequency_hz": 435000000,
|
||||
"set_center_frequency_hz": 435000000,
|
||||
"requested_sample_rate_hz": 2400000.0,
|
||||
"set_sample_rate_hz": 2400000.0,
|
||||
"sample_rate_readback_available": false,
|
||||
"center_frequency_readback_available": false,
|
||||
"rf_amp_enabled": false,
|
||||
"lna_gain_db": 0,
|
||||
"vga_gain_db": 0,
|
||||
"antenna_bias_enabled": false,
|
||||
"device_opened_via_libhackrf": true,
|
||||
"rx_started": true,
|
||||
"probe_sample_count": 65536,
|
||||
"probe_dtype": "complex64",
|
||||
"probe_mean_i": -0.02207362651824951,
|
||||
"probe_mean_q": 0.023364543914794922,
|
||||
"probe_rms": 0.032287873327732086,
|
||||
"probe_peak_magnitude": 0.03314562886953354,
|
||||
"probe_clipped_component_fraction": 0.0,
|
||||
"probe_stream": {
|
||||
"callback_count_total": 2,
|
||||
"warmup_callback_count": 1,
|
||||
"accepted_callback_count": 1,
|
||||
"received_bytes_including_warmup": 524288,
|
||||
"accepted_bytes": 131072,
|
||||
"accepted_sample_count": 65536,
|
||||
"callback_indexes_sequential": true,
|
||||
"program_queue_missing_callback_count": 0,
|
||||
"duplicate_full_block_hash_count": 0,
|
||||
"observed_buffer_lengths": [
|
||||
262144
|
||||
],
|
||||
"observed_valid_lengths": [
|
||||
262144
|
||||
],
|
||||
"stream_started_monotonic": 14833.3008998,
|
||||
"stream_stopped_monotonic": 14833.4274047,
|
||||
"stream_wall_seconds": 0.12650489999941783,
|
||||
"accepted_interval_seconds": 0.05461333333333333,
|
||||
"mean_callback_stream_sample_rate_hz": 2400000.0,
|
||||
"expected_callback_bytes": 262144,
|
||||
"observed_callback_byte_sizes": [
|
||||
262144
|
||||
],
|
||||
"observed_callback_buffer_lengths": [
|
||||
262144
|
||||
],
|
||||
"usb_loss_counter_available": false,
|
||||
"usb_loss_claim": "N/A: libhackrf callback API не предоставляет счётчик потерь"
|
||||
}
|
||||
},
|
||||
"tx_parameters": {
|
||||
"requested_center_frequency_hz": 435000000,
|
||||
"actual_center_frequency_hz": 435000000,
|
||||
"requested_sample_rate_hz": 2400000,
|
||||
"actual_sample_rate_hz": 2399998,
|
||||
"requested_gain_db": -30.0,
|
||||
"actual_gain_db": -30.0,
|
||||
"requested_rf_bandwidth_hz": 200000,
|
||||
"actual_rf_bandwidth_hz": 200000
|
||||
},
|
||||
"rx_parameters": {
|
||||
"requested_center_frequency_hz": 435000000,
|
||||
"set_center_frequency_hz": 435000000,
|
||||
"requested_sample_rate_hz": 2400000.0,
|
||||
"set_sample_rate_hz": 2400000.0,
|
||||
"sample_rate_readback_available": false,
|
||||
"center_frequency_readback_available": false,
|
||||
"rf_amp_enabled": false,
|
||||
"lna_gain_db": 0,
|
||||
"vga_gain_db": 0,
|
||||
"antenna_bias_enabled": false
|
||||
},
|
||||
"actual_transmitted_tone_offset_hz": 49999.958333333336,
|
||||
"rf_amp_enabled": false,
|
||||
"antenna_bias_enabled": false,
|
||||
"completed_step_count": 1,
|
||||
"stop_reason": "перегрузка/близость к пределу/гармоническая нелинейность",
|
||||
"rows": [
|
||||
{
|
||||
"step_index": 0,
|
||||
"lna_gain_db": 0,
|
||||
"vga_gain_db": 0,
|
||||
"gain_configuration": {
|
||||
"rf_amp_enabled": false,
|
||||
"antenna_bias_enabled": false,
|
||||
"lna_gain_db": 0,
|
||||
"vga_gain_db": 0,
|
||||
"gain_readback_available": false,
|
||||
"set_calls_succeeded": true
|
||||
},
|
||||
"capture_diagnostics": {
|
||||
"callback_count_total": 20,
|
||||
"warmup_callback_count": 1,
|
||||
"accepted_callback_count": 19,
|
||||
"received_bytes_including_warmup": 5242880,
|
||||
"accepted_bytes": 4800000,
|
||||
"accepted_sample_count": 2400000,
|
||||
"callback_indexes_sequential": true,
|
||||
"program_queue_missing_callback_count": 0,
|
||||
"duplicate_full_block_hash_count": 0,
|
||||
"observed_buffer_lengths": [
|
||||
262144
|
||||
],
|
||||
"observed_valid_lengths": [
|
||||
262144
|
||||
],
|
||||
"stream_started_monotonic": 14833.9455921,
|
||||
"stream_stopped_monotonic": 14835.0408997,
|
||||
"stream_wall_seconds": 1.095307599998705,
|
||||
"accepted_interval_seconds": 1.015633833332328,
|
||||
"mean_callback_stream_sample_rate_hz": 2452033.319753656,
|
||||
"expected_callback_bytes": 262144,
|
||||
"observed_callback_byte_sizes": [
|
||||
262144
|
||||
],
|
||||
"observed_callback_buffer_lengths": [
|
||||
262144
|
||||
],
|
||||
"usb_loss_counter_available": false,
|
||||
"usb_loss_claim": "N/A: libhackrf callback API не предоставляет счётчик потерь"
|
||||
},
|
||||
"metrics": {
|
||||
"sample_count": 1800000,
|
||||
"fft_samples": 262144,
|
||||
"fft_segment_count": 6,
|
||||
"fft_resolution_hz": 9.1552734375,
|
||||
"tone_frequency_hz": 50553.32330951437,
|
||||
"tone_peak_bin_hz": 50555.419921875,
|
||||
"tone_power_dbfs": -81.28323863999425,
|
||||
"noise_floor_dbfs_per_fft_bin": -102.8470903549844,
|
||||
"tone_over_noise_db": 21.56385171499015,
|
||||
"mean_amplitude": 0.03218085318803787,
|
||||
"rms_amplitude": 0.03224262222647667,
|
||||
"maximum_amplitude": 0.03314562886953354,
|
||||
"maximum_component": 0.0234375,
|
||||
"near_limit_component_fraction": 0.0,
|
||||
"clipped_component_fraction": 0.0,
|
||||
"dc_mean_i": -0.021994179114699364,
|
||||
"dc_mean_q": 0.023369232192635536,
|
||||
"second_harmonic_dbc": -17.033931670944185,
|
||||
"third_harmonic_dbc": -16.93934642712324,
|
||||
"harmonic_nonlinearity_detected": true,
|
||||
"stop_gain_escalation": true,
|
||||
"stop_reason": "перегрузка/близость к пределу/гармоническая нелинейность"
|
||||
}
|
||||
}
|
||||
],
|
||||
"preferred_gain": null,
|
||||
"digital_experiment_authorized": false
|
||||
}
|
||||
@@ -0,0 +1,416 @@
|
||||
{
|
||||
"experiment": "Lab043 HackRF RX gain ladder with one continuous tone",
|
||||
"started_utc": "2026-08-20T16:14:24.031539Z",
|
||||
"physical_scheme": "Pluto+ TX -> SMA -> AT30S 30 dB -> HackRF RX; antennas removed",
|
||||
"method": "one continuous cyclic Pluto tone; separate short HackRF RX sessions per gain point",
|
||||
"fixed_gain_ladder": [
|
||||
[
|
||||
0,
|
||||
0
|
||||
],
|
||||
[
|
||||
8,
|
||||
8
|
||||
],
|
||||
[
|
||||
16,
|
||||
8
|
||||
],
|
||||
[
|
||||
16,
|
||||
16
|
||||
],
|
||||
[
|
||||
24,
|
||||
16
|
||||
],
|
||||
[
|
||||
24,
|
||||
24
|
||||
]
|
||||
],
|
||||
"fixed_thresholds": {
|
||||
"desirable_tone_over_noise_db": 35.0,
|
||||
"near_limit_component": 0.9,
|
||||
"preferred_max_component": 0.75,
|
||||
"clipped_component": 0.9921875,
|
||||
"near_limit_fraction_stop": 0.0001,
|
||||
"nonlinear_harmonic_limit_dbc": -30.0,
|
||||
"harmonic_detection_margin_db": 10.0,
|
||||
"harmonic_search_half_width_hz": 2000.0,
|
||||
"harmonic_noise_outer_half_width_hz": 10000.0
|
||||
},
|
||||
"pluto_preflight": {
|
||||
"uri": "ip:192.168.2.1",
|
||||
"context_opened": true,
|
||||
"phy_name": "ad9361-phy",
|
||||
"tx_device_name": "cf-ad9361-dds-core-lpc",
|
||||
"first_tx_channel": "voltage0"
|
||||
},
|
||||
"hackrf_preflight": {
|
||||
"model": "HackRF One",
|
||||
"serial_number": "000000000000000097c063dc323b97d3",
|
||||
"firmware_version": "2024.02.1 (API:1.08)",
|
||||
"libhackrf_version": "2024.02.1 (0.9)",
|
||||
"hardware_revision": "r9",
|
||||
"hackrf_info_version": "2024.02.1",
|
||||
"information_query": "hackrf_info version: 2024.02.1\nlibhackrf version: 2024.02.1 (0.9)\nFound HackRF\nIndex: 0\nSerial number: 000000000000000097c063dc323b97d3\nBoard ID Number: 4 (HackRF One)\nFirmware Version: 2024.02.1 (API:1.08)\nPart ID Number: 0xa000cb3c 0x00744f5a\nHardware Revision: r9\nHardware does not appear to have been manufactured by Great Scott Gadgets.\nHardware supported by installed firmware:\n HackRF One",
|
||||
"requested_center_frequency_hz": 435000000,
|
||||
"set_center_frequency_hz": 435000000,
|
||||
"requested_sample_rate_hz": 2400000.0,
|
||||
"set_sample_rate_hz": 2400000.0,
|
||||
"sample_rate_readback_available": false,
|
||||
"center_frequency_readback_available": false,
|
||||
"rf_amp_enabled": false,
|
||||
"lna_gain_db": 0,
|
||||
"vga_gain_db": 0,
|
||||
"antenna_bias_enabled": false,
|
||||
"device_opened_via_libhackrf": true,
|
||||
"rx_started": true,
|
||||
"probe_sample_count": 65536,
|
||||
"probe_dtype": "complex64",
|
||||
"probe_mean_i": -0.02216637134552002,
|
||||
"probe_mean_q": 0.023369193077087402,
|
||||
"probe_rms": 0.032346732914447784,
|
||||
"probe_peak_magnitude": 0.03314562886953354,
|
||||
"probe_clipped_component_fraction": 0.0,
|
||||
"probe_stream": {
|
||||
"callback_count_total": 2,
|
||||
"warmup_callback_count": 1,
|
||||
"accepted_callback_count": 1,
|
||||
"received_bytes_including_warmup": 524288,
|
||||
"accepted_bytes": 131072,
|
||||
"accepted_sample_count": 65536,
|
||||
"callback_indexes_sequential": true,
|
||||
"program_queue_missing_callback_count": 0,
|
||||
"duplicate_full_block_hash_count": 0,
|
||||
"observed_buffer_lengths": [
|
||||
262144
|
||||
],
|
||||
"observed_valid_lengths": [
|
||||
262144
|
||||
],
|
||||
"stream_started_monotonic": 16196.8526212,
|
||||
"stream_stopped_monotonic": 16196.9628548,
|
||||
"stream_wall_seconds": 0.11023360000035609,
|
||||
"accepted_interval_seconds": 0.05461333333333333,
|
||||
"mean_callback_stream_sample_rate_hz": 2400000.0,
|
||||
"expected_callback_bytes": 262144,
|
||||
"observed_callback_byte_sizes": [
|
||||
262144
|
||||
],
|
||||
"observed_callback_buffer_lengths": [
|
||||
262144
|
||||
],
|
||||
"usb_loss_counter_available": false,
|
||||
"usb_loss_claim": "N/A: libhackrf callback API не предоставляет счётчик потерь"
|
||||
}
|
||||
},
|
||||
"tx_parameters": {
|
||||
"requested_center_frequency_hz": 435000000,
|
||||
"actual_center_frequency_hz": 435000000,
|
||||
"requested_sample_rate_hz": 2400000,
|
||||
"actual_sample_rate_hz": 2399998,
|
||||
"requested_gain_db": -30.0,
|
||||
"actual_gain_db": -30.0,
|
||||
"requested_rf_bandwidth_hz": 200000,
|
||||
"actual_rf_bandwidth_hz": 200000
|
||||
},
|
||||
"rx_parameters": {
|
||||
"requested_center_frequency_hz": 435000000,
|
||||
"set_center_frequency_hz": 435000000,
|
||||
"requested_sample_rate_hz": 2400000.0,
|
||||
"set_sample_rate_hz": 2400000.0,
|
||||
"sample_rate_readback_available": false,
|
||||
"center_frequency_readback_available": false,
|
||||
"rf_amp_enabled": false,
|
||||
"lna_gain_db": 0,
|
||||
"vga_gain_db": 0,
|
||||
"antenna_bias_enabled": false
|
||||
},
|
||||
"actual_transmitted_tone_offset_hz": 49999.958333333336,
|
||||
"rf_amp_enabled": false,
|
||||
"antenna_bias_enabled": false,
|
||||
"completed_step_count": 3,
|
||||
"stop_reason": "перегрузка/близость к пределу/гармоническая нелинейность",
|
||||
"rows": [
|
||||
{
|
||||
"step_index": 0,
|
||||
"lna_gain_db": 0,
|
||||
"vga_gain_db": 0,
|
||||
"gain_configuration": {
|
||||
"rf_amp_enabled": false,
|
||||
"antenna_bias_enabled": false,
|
||||
"lna_gain_db": 0,
|
||||
"vga_gain_db": 0,
|
||||
"gain_readback_available": false,
|
||||
"set_calls_succeeded": true
|
||||
},
|
||||
"capture_diagnostics": {
|
||||
"callback_count_total": 20,
|
||||
"warmup_callback_count": 1,
|
||||
"accepted_callback_count": 19,
|
||||
"received_bytes_including_warmup": 5242880,
|
||||
"accepted_bytes": 4800000,
|
||||
"accepted_sample_count": 2400000,
|
||||
"callback_indexes_sequential": true,
|
||||
"program_queue_missing_callback_count": 0,
|
||||
"duplicate_full_block_hash_count": 0,
|
||||
"observed_buffer_lengths": [
|
||||
262144
|
||||
],
|
||||
"observed_valid_lengths": [
|
||||
262144
|
||||
],
|
||||
"stream_started_monotonic": 16197.5058473,
|
||||
"stream_stopped_monotonic": 16198.599203,
|
||||
"stream_wall_seconds": 1.0933556999989378,
|
||||
"accepted_interval_seconds": 1.0374631333339555,
|
||||
"mean_callback_stream_sample_rate_hz": 2400439.996356343,
|
||||
"expected_callback_bytes": 262144,
|
||||
"observed_callback_byte_sizes": [
|
||||
262144
|
||||
],
|
||||
"observed_callback_buffer_lengths": [
|
||||
262144
|
||||
],
|
||||
"usb_loss_counter_available": false,
|
||||
"usb_loss_claim": "N/A: libhackrf callback API не предоставляет счётчик потерь"
|
||||
},
|
||||
"metrics": {
|
||||
"sample_count": 1800000,
|
||||
"fft_samples": 262144,
|
||||
"fft_segment_count": 6,
|
||||
"fft_resolution_hz": 9.1552734375,
|
||||
"tone_frequency_hz": 50555.09081574355,
|
||||
"tone_peak_bin_hz": 50555.419921875,
|
||||
"tone_power_dbfs": -79.8521010939479,
|
||||
"noise_floor_dbfs_per_fft_bin": -102.22903287394465,
|
||||
"tone_over_noise_db": 22.376931779996752,
|
||||
"mean_amplitude": 0.03206367790699005,
|
||||
"rms_amplitude": 0.032130662351846695,
|
||||
"maximum_amplitude": 0.03493856266140938,
|
||||
"maximum_component": 0.03125,
|
||||
"near_limit_component_fraction": 0.0,
|
||||
"clipped_component_fraction": 0.0,
|
||||
"dc_mean_i": -0.02178940176963806,
|
||||
"dc_mean_q": 0.023389514535665512,
|
||||
"second_harmonic": {
|
||||
"order": 2,
|
||||
"expected_frequency_hz": 101110.1816314871,
|
||||
"peak_frequency_hz": 103042.6025390625,
|
||||
"peak_power_dbfs": -97.16303551095399,
|
||||
"local_noise_floor_dbfs_per_fft_bin": -102.3624373861,
|
||||
"above_local_noise_db": 5.199401875146009,
|
||||
"relative_to_fundamental_db": -17.310934417006095,
|
||||
"credible": false,
|
||||
"nonlinear": false
|
||||
},
|
||||
"third_harmonic": {
|
||||
"order": 3,
|
||||
"expected_frequency_hz": 151665.27244723076,
|
||||
"peak_frequency_hz": 151263.427734375,
|
||||
"peak_power_dbfs": -97.44245378672434,
|
||||
"local_noise_floor_dbfs_per_fft_bin": -102.34809348021747,
|
||||
"above_local_noise_db": 4.905639693493129,
|
||||
"relative_to_fundamental_db": -17.59035269277645,
|
||||
"credible": false,
|
||||
"nonlinear": false
|
||||
},
|
||||
"second_harmonic_dbc": -17.310934417006095,
|
||||
"third_harmonic_dbc": -17.59035269277645,
|
||||
"harmonic_nonlinearity_detected": false,
|
||||
"stop_gain_escalation": false,
|
||||
"stop_reason": ""
|
||||
}
|
||||
},
|
||||
{
|
||||
"step_index": 1,
|
||||
"lna_gain_db": 8,
|
||||
"vga_gain_db": 8,
|
||||
"gain_configuration": {
|
||||
"rf_amp_enabled": false,
|
||||
"antenna_bias_enabled": false,
|
||||
"lna_gain_db": 8,
|
||||
"vga_gain_db": 8,
|
||||
"gain_readback_available": false,
|
||||
"set_calls_succeeded": true
|
||||
},
|
||||
"capture_diagnostics": {
|
||||
"callback_count_total": 15,
|
||||
"warmup_callback_count": 1,
|
||||
"accepted_callback_count": 14,
|
||||
"received_bytes_including_warmup": 3932160,
|
||||
"accepted_bytes": 3600000,
|
||||
"accepted_sample_count": 1800000,
|
||||
"callback_indexes_sequential": true,
|
||||
"program_queue_missing_callback_count": 0,
|
||||
"duplicate_full_block_hash_count": 0,
|
||||
"observed_buffer_lengths": [
|
||||
262144
|
||||
],
|
||||
"observed_valid_lengths": [
|
||||
262144
|
||||
],
|
||||
"stream_started_monotonic": 16198.9768347,
|
||||
"stream_stopped_monotonic": 16199.7983054,
|
||||
"stream_wall_seconds": 0.8214706999988266,
|
||||
"accepted_interval_seconds": 0.7651954333319796,
|
||||
"mean_callback_stream_sample_rate_hz": 2398090.6315784073,
|
||||
"expected_callback_bytes": 262144,
|
||||
"observed_callback_byte_sizes": [
|
||||
262144
|
||||
],
|
||||
"observed_callback_buffer_lengths": [
|
||||
262144
|
||||
],
|
||||
"usb_loss_counter_available": false,
|
||||
"usb_loss_claim": "N/A: libhackrf callback API не предоставляет счётчик потерь"
|
||||
},
|
||||
"metrics": {
|
||||
"sample_count": 1800000,
|
||||
"fft_samples": 262144,
|
||||
"fft_segment_count": 6,
|
||||
"fft_resolution_hz": 9.1552734375,
|
||||
"tone_frequency_hz": 50555.29344158161,
|
||||
"tone_peak_bin_hz": 50555.419921875,
|
||||
"tone_power_dbfs": -75.07841275653543,
|
||||
"noise_floor_dbfs_per_fft_bin": -105.14911967255102,
|
||||
"tone_over_noise_db": 30.070706916015595,
|
||||
"mean_amplitude": 0.03427855297923088,
|
||||
"rms_amplitude": 0.03433648869395256,
|
||||
"maximum_amplitude": 0.04207159951329231,
|
||||
"maximum_component": 0.0390625,
|
||||
"near_limit_component_fraction": 0.0,
|
||||
"clipped_component_fraction": 0.0,
|
||||
"dc_mean_i": -0.015552565455436707,
|
||||
"dc_mean_q": 0.030518028885126114,
|
||||
"second_harmonic": {
|
||||
"order": 2,
|
||||
"expected_frequency_hz": 101110.58688316331,
|
||||
"peak_frequency_hz": 101110.83984375,
|
||||
"peak_power_dbfs": -96.46551235195447,
|
||||
"local_noise_floor_dbfs_per_fft_bin": -105.04563379125153,
|
||||
"above_local_noise_db": 8.58012143929706,
|
||||
"relative_to_fundamental_db": -21.387099595419045,
|
||||
"credible": false,
|
||||
"nonlinear": false
|
||||
},
|
||||
"third_harmonic": {
|
||||
"order": 3,
|
||||
"expected_frequency_hz": 151665.88032474485,
|
||||
"peak_frequency_hz": 150769.04296875,
|
||||
"peak_power_dbfs": -100.56316044640394,
|
||||
"local_noise_floor_dbfs_per_fft_bin": -105.10576449464062,
|
||||
"above_local_noise_db": 4.542604048236683,
|
||||
"relative_to_fundamental_db": -25.484747689868513,
|
||||
"credible": false,
|
||||
"nonlinear": false
|
||||
},
|
||||
"second_harmonic_dbc": -21.387099595419045,
|
||||
"third_harmonic_dbc": -25.484747689868513,
|
||||
"harmonic_nonlinearity_detected": false,
|
||||
"stop_gain_escalation": false,
|
||||
"stop_reason": ""
|
||||
}
|
||||
},
|
||||
{
|
||||
"step_index": 2,
|
||||
"lna_gain_db": 16,
|
||||
"vga_gain_db": 8,
|
||||
"gain_configuration": {
|
||||
"rf_amp_enabled": false,
|
||||
"antenna_bias_enabled": false,
|
||||
"lna_gain_db": 16,
|
||||
"vga_gain_db": 8,
|
||||
"gain_readback_available": false,
|
||||
"set_calls_succeeded": true
|
||||
},
|
||||
"capture_diagnostics": {
|
||||
"callback_count_total": 15,
|
||||
"warmup_callback_count": 1,
|
||||
"accepted_callback_count": 14,
|
||||
"received_bytes_including_warmup": 3932160,
|
||||
"accepted_bytes": 3600000,
|
||||
"accepted_sample_count": 1800000,
|
||||
"callback_indexes_sequential": true,
|
||||
"program_queue_missing_callback_count": 0,
|
||||
"duplicate_full_block_hash_count": 0,
|
||||
"observed_buffer_lengths": [
|
||||
262144
|
||||
],
|
||||
"observed_valid_lengths": [
|
||||
262144
|
||||
],
|
||||
"stream_started_monotonic": 16200.181376,
|
||||
"stream_stopped_monotonic": 16201.0025195,
|
||||
"stream_wall_seconds": 0.8211434999993799,
|
||||
"accepted_interval_seconds": 0.7650824333337428,
|
||||
"mean_callback_stream_sample_rate_hz": 2398444.8211733233,
|
||||
"expected_callback_bytes": 262144,
|
||||
"observed_callback_byte_sizes": [
|
||||
262144
|
||||
],
|
||||
"observed_callback_buffer_lengths": [
|
||||
262144
|
||||
],
|
||||
"usb_loss_counter_available": false,
|
||||
"usb_loss_claim": "N/A: libhackrf callback API не предоставляет счётчик потерь"
|
||||
},
|
||||
"metrics": {
|
||||
"sample_count": 1800000,
|
||||
"fft_samples": 262144,
|
||||
"fft_segment_count": 6,
|
||||
"fft_resolution_hz": 9.1552734375,
|
||||
"tone_frequency_hz": 50555.418595322284,
|
||||
"tone_peak_bin_hz": 50555.419921875,
|
||||
"tone_power_dbfs": -65.25476329876575,
|
||||
"noise_floor_dbfs_per_fft_bin": -103.39135933360873,
|
||||
"tone_over_noise_db": 38.13659603484298,
|
||||
"mean_amplitude": 0.033912722021341324,
|
||||
"rms_amplitude": 0.0339985117316246,
|
||||
"maximum_amplitude": 0.04207159951329231,
|
||||
"maximum_component": 0.0390625,
|
||||
"near_limit_component_fraction": 0.0,
|
||||
"clipped_component_fraction": 0.0,
|
||||
"dc_mean_i": -0.015441679395735264,
|
||||
"dc_mean_q": 0.030141202732920647,
|
||||
"second_harmonic": {
|
||||
"order": 2,
|
||||
"expected_frequency_hz": 101110.83719064458,
|
||||
"peak_frequency_hz": 101110.83984375,
|
||||
"peak_power_dbfs": -83.20641938155373,
|
||||
"local_noise_floor_dbfs_per_fft_bin": -103.4224986210237,
|
||||
"above_local_noise_db": 20.216079239469977,
|
||||
"relative_to_fundamental_db": -17.951656082787977,
|
||||
"credible": true,
|
||||
"nonlinear": true
|
||||
},
|
||||
"third_harmonic": {
|
||||
"order": 3,
|
||||
"expected_frequency_hz": 151666.25578596676,
|
||||
"peak_frequency_hz": 153103.6376953125,
|
||||
"peak_power_dbfs": -98.4311096772575,
|
||||
"local_noise_floor_dbfs_per_fft_bin": -103.40473622499643,
|
||||
"above_local_noise_db": 4.973626547738931,
|
||||
"relative_to_fundamental_db": -33.17634637849174,
|
||||
"credible": false,
|
||||
"nonlinear": false
|
||||
},
|
||||
"second_harmonic_dbc": -17.951656082787977,
|
||||
"third_harmonic_dbc": -33.17634637849174,
|
||||
"harmonic_nonlinearity_detected": true,
|
||||
"stop_gain_escalation": true,
|
||||
"stop_reason": "перегрузка/близость к пределу/гармоническая нелинейность"
|
||||
}
|
||||
}
|
||||
],
|
||||
"preferred_gain": {
|
||||
"step_index": 1,
|
||||
"lna_gain_db": 8,
|
||||
"vga_gain_db": 8,
|
||||
"tone_over_noise_db": 30.070706916015595,
|
||||
"desirable_margin_reached": false
|
||||
},
|
||||
"digital_experiment_authorized": false
|
||||
}
|
||||
Reference in New Issue
Block a user