Improved correction curves

pull/139/head
erikkaashoek 11 months ago
parent 73fe677ce8
commit 6ff182b73d

@ -1271,34 +1271,34 @@ const float v5_2_lna_level_offset = 7;
const freq_t v4_6_correction_frequency[CORRECTION_SIZE][CORRECTION_POINTS]=
{
/* low */ { 10000, 40000, 90000, 200000, 400000, 1000000, 3000000, 80000000, 230000000, 390000000, 500000000, 770000000, 810000000, 860000000, 880000000, 900000000, 900000000, 900000000, 900000000, 900000000},
/* low lna */ { 10000, 40000, 80000, 400000, 700000, 3000000, 8000000, 300000000, 630000000, 770000000, 850000000, 890000000, 900000000, 900000000, 900000000, 900000000, 900000000, 900000000, 900000000, 900000000},
/* ultra */ { 30000000, 700000000, 4110000000, 4370000000, 4740000000, 4890000000, 5010000000, 5110000000, 5420000000, 5420000000, 5420000000, 5420000000, 5420000000, 5420000000, 5420000000, 5420000000, 5420000000, 5420000000, 5420000000, 5420000000},
/* ultra lna */ { 30000000, 700000000, 2400000000, 2670000000, 3200000000, 3500000000, 3830000000, 4040000000, 4390000000, 4770000000, 5240000000, 5450000000, 5450000000, 5450000000, 5450000000, 5450000000, 5450000000, 5450000000, 5450000000, 5450000000},
/* direct */ { 140000000, 180000000, 280000000, 420000000, 560000000, 830000000, 920000000, 1000000000, 1130000000, 1130000000, 1130000000, 1130000000, 1130000000, 1130000000, 1130000000, 1130000000, 1130000000, 1130000000, 1130000000, 1130000000},
/* direct lna */ { 140000000, 170000000, 180000000, 280000000, 330000000, 440000000, 560000000, 830000000, 900000000, 960000000, 1040000000, 1130000000, 1130000000, 1130000000, 1130000000, 1130000000, 1130000000, 1130000000, 1130000000, 1130000000},
/* harm */ { 30000000, 5000000000, 5070000000, 5140000000, 5480000000, 6110000000, 6570000000, 7080000000, 7270000000, 7920000000, 8380000000, 8700000000, 8920000000, 9010000000, 9260000000, 10000000000, 10000000000, 10000000000, 10000000000, 10000000000},
/* harm lna */ { 30000000, 5000000000, 5270000000, 5540000000, 6170000000, 6770000000, 7370000000, 7920000000, 8610000000, 9380000000, 10000000000, 10000000000, 10000000000, 10000000000, 10000000000, 10000000000, 10000000000, 10000000000, 10000000000, 10000000000},
/* out */ { 100000, 300000, 700000, 5000000, 30000000, 90000000, 210000000, 550000000, 790000000, 840000000, 870000000, 900000000, 900000000, 900000000, 900000000, 900000000, 900000000, 900000000, 900000000, 900000000},
/* direct */ { 823000000, 970000000, 1140000000, 1140000000, 1140000000, 1140000000, 1140000000, 1140000000, 1140000000, 1140000000, 1140000000, 1140000000, 1140000000, 1140000000, 1140000000, 1140000000, 1140000000, 1140000000, 1140000000, 1140000000},
/* adf */ { 1000000000, 1860000000, 2800000000, 3000000000, 3360000000, 3770000000, 4330000000, 4530000000, 4530000000, 4530000000, 4530000000, 4530000000, 4530000000, 4530000000, 4530000000, 4530000000, 4530000000, 4530000000, 4530000000, 4530000000},
/* ultra */ { 1000000000, 1700000000, 2800000000, 2810000000, 3000000000, 3040000000, 3100000000, 3200000000, 3400000000, 3770000000, 4200000000, 4340000000, 4350000000, 4600000000, 4740000000, 4860000000, 5000000000, 5200000000, 5300000000, 5400000000}
/* low */ { 10000, 20000, 90000, 200000, 800000, 4000000, 30000000, 100000000, 180000000, 300000000, 400000000, 550000000, 680000000, 700000000, 720000000, 730000000, 740000000, 790000000, 860000000, 900000000},
/* low lna */ { 10000, 30000, 80000, 500000, 800000, 3000000, 15000000, 30000000, 80000000, 120000000, 310000000, 600000000, 650000000, 690000000, 700000000, 720000000, 800000000, 840000000, 880000000, 900000000},
/* ultra */ { 30000000, 700000000, 890000000, 930000000, 980000000, 1580000000, 1710000000, 2000000000, 2400000000, 2410000000, 2440000000, 2760000000, 2960000000, 3090000000, 4010000000, 4380000000, 4900000000, 5010000000, 5160000000, 5400000000},
/* ultra lna */ { 30000000, 700000000, 1300000000, 1820000000, 1980000000, 2160000000, 2420000000, 2430000000, 2790000000, 2820000000, 3010000000, 3060000000, 3530000000, 3880000000, 3980000000, 4310000000, 4480000000, 5010000000, 5350000000, 5400000000},
/* direct */ { 140000000, 160000000, 180000000, 280000000, 340000000, 380000000, 520000000, 540000000, 560000000, 830000000, 840000000, 850000000, 860000000, 910000000, 980000000, 1000000000, 1040000000, 1060000000, 1100000000, 1130000000},
/* direct lna */ { 140000000, 160000000, 180000000, 280000000, 350000000, 440000000, 500000000, 560000000, 830000000, 840000000, 850000000, 860000000, 870000000, 900000000, 980000000, 990000000, 1020000000, 1060000000, 1080000000, 1130000000},
/* harm */ { 30000000, 5000000000, 5400000000, 5770000000, 6020000000, 6230000000, 6380000000, 6770000000, 7220000000, 7470000000, 7910000000, 8070000000, 8300000000, 8450000000, 8710000000, 9200000000, 9380000000, 10350000000, 10800000000, 11000000000},
/* harm lna */ { 30000000, 5000000000, 5390000000, 5680000000, 6020000000, 6630000000, 7260000000, 7620000000, 7940000000, 8100000000, 8290000000, 8480000000, 8660000000, 9000000000, 9400000000, 9540000000, 10000000000, 10410000000, 10790000000, 11000000000},
/* out */ { 10000, 20000, 40000, 100000, 200000, 300000, 500000, 2000000, 5000000, 50000000, 120000000, 190000000, 400000000, 480000000, 550000000, 650000000, 760000000, 840000000, 870000000, 900000000},
/* direct */ { 823000000, 850000000, 860000000, 880000000, 890000000, 910000000, 920000000, 950000000, 980000000, 990000000, 1000000000, 1030000000, 1050000000, 1060000000, 1070000000, 1080000000, 1100000000, 1120000000, 1130000000, 1140000000},
/* adf */ { 740000000, 900000000, 920000000, 1090000000, 1120000000, 1400000000, 1420000000, 1530000000, 1660000000, 2000000000, 2200000000, 2210000000, 2420000000, 2800000000, 2830000000, 3080000000, 3610000000, 3790000000, 4250000000, 4450000000},
/* ultra */ { 10000, 20000, 50000, 100000, 200000, 300000, 1000000, 2000000, 4000000, 30000000, 170000000, 690000000, 1060000000, 1670000000, 2200000000, 2800000000, 2810000000, 4370000000, 4940000000, 5480000000}
};
const float v4_6_correction_value[CORRECTION_SIZE][CORRECTION_POINTS]=
{
/* low */ { 13.02, 9.45, 7.03, 4.73, 3.31, 1.35, 0.11, -0.15, 1.37, 0.76, 0.02, 0.2, 0.4, 2.3, 3.4, 5.51, 5.51, 5.51, 5.51, 5.51},
/* low lna */ { 11.58, 7.85, 6.35, 3, 2.48, 0.11, 0.12, 1.67, -0.11, 0.67, 1.24, 3.79, 4.61, 4.61, 4.61, 4.61, 4.61, 4.61, 4.61, 4.61},
/* ultra */ { 0.001, -0.07, 5.71, 5.69, 8.64, 10.07, 11.51, 12.3, 10.34, 10.34, 10.34, 10.34, 10.34, 10.34, 10.34, 10.34, 10.34, 10.34, 10.34, 10.34},
/* ultra lna */ { 0.0001, 0.81, 1.43, 2.79, 5.09, 7.46, 7.9, 10.4, 16.06, 18.66, 22.3, 22.8, 22.8, 22.8, 22.8, 22.8, 22.8, 22.8, 22.8, 22.8},
/* direct */ { 56.43, 48.17, 35.3, 23.15, 14.42, 1.5, 0.2, -0.4, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1},
/* direct lna */ { 56, 50.4, 48.75, 35.86, 31.08, 22.12, 14.7, 1.51, 0.3, 0.001, 0.03, 0.66, 0.66, 0.66, 0.66, 0.66, 0.66, 0.66, 0.66, 0.66},
/* harm */ { 0.001, 15.49, 15.08, 14.77, 13.6, 14.37, 16.33, 23.47, 25.08, 25.87, 30.1, 34.5, 39.51, 40.5, 40.14, 42.77, 42.77, 42.77, 42.77, 42.77},
/* harm lna */ { 0.001, 20.53, 20.89, 15.67, 13.32, 22.15, 27.77, 28.3, 34.67, 49.83, 52.42, 52.42, 52.42, 52.42, 52.42, 52.42, 52.42, 52.42, 52.42, 52.42},
/* out */ { 0.77, -0.54, -2.37, -4, -4.27, -4.79, -3.15, -4.84, -3.84, -3.16, -1.68, 1.26, 1.26, 1.26, 1.26, 1.26, 1.26, 1.26, 1.26, 1.26},
/* direct */ { -3.61, -2.06, 0.31, 0.31, 0.31, 0.31, 0.31, 0.31, 0.31, 0.31, 0.31, 0.31, 0.31, 0.31, 0.31, 0.31, 0.31, 0.31, 0.31, 0.31},
/* adf */ { 2.24, 0.65, 1.2, -3.2, 1.3, -2.54, 0.71, 5.24, 5.24, 5.24, 5.24, 5.24, 5.24, 5.24, 5.24, 5.24, 5.24, 5.24, 5.24, 5.24},
/* ultra */ { -3.35, -3, 0.58, -0.23, -2.53, -0.4, 2.06, 0.3, 3.25, 0.67, 3.4, 1.73, 2.78, 4.08, 9.55, 5.88, 9.89, 3.93, 6.13, 3.57},
/* low */ { 14.1, 12.14, 8.12, 6.01, 2.64, 0.11, 0, -0.09, 1.58, 1.53, 1.43, 0.26, 1.08, 1.63, 1.04, 1.71, 1.05, 1.04, 2.26, 4.55},
/* low lna */ { 12.19, 9.19, 6.74, 3.43, 2.18, 0.11, -0.37, 0, 0.03, 0.61, 1.63, 0.2, 0.64, 0.67, 1.63, 1.13, 1.03, 1.53, 2.29, 3.63},
/* ultra */ { 0, 0.54, 0.68, 1.23, 1.36, 1.41, 2.01, 2.13, 2.93, 2.9, 3.89, 4.11, 5.43, 4.67, 6.73, 6.45, 9.5, 9.07, 9.45, 8.31},
/* ultra lna */ { 0, 0.64, 1.29, 1.14, 1.68, 1.18, 1.07, 2.35, 3.21, 4.04, 5.3, 4.58, 8.22, 9.01, 10.17, 15.78, 17.71, 18.09, 21.04, 20.91},
/* direct */ { 54.66, 50.54, 47.16, 34.75, 29.22, 26.08, 15.78, 14.78, 14.33, 1.37, 1.12, 1.11, 0.52, 0.23, 0.2, 0, 0.11, 0.46, 0.48, 0.75},
/* direct lna */ { 54.36, 50.7, 47.47, 34.91, 28.42, 21.43, 17.33, 14.01, 1.35, 1.35, 0.84, 0.71, 0.25, -0.04, 0, -0.19, 0.24, 0.21, 0.67, 0.99},
/* harm */ { 0, 14.79, 12.45, 15.87, 15.04, 15.34, 15.9, 18.94, 17.22, 17.41, 22.64, 25.72, 31.44, 31.72, 33.08, 33.04, 33.74, 43.39, 49.22, 51.29},
/* harm lna */ { 0.0001, 28.48, 29.12, 32.11, 31.65, 36.6, 33.62, 35.5, 38.58, 41.76, 47, 49.14, 52.04, 52.12, 55.02, 56.14, 64.84, 67.08, 71.58, 72.25},
/* out */ { 6.01, 3.81, 2.1, -0.39, -2.39, -3.3, -3.69, -5.56, -6.05, -6.35, -5.95, -4.84, -5.21, -5.91, -6.05, -5.57, -5.49, -4.59, -3.74, -1.96},
/* direct */ { -3.79, -3.51, -3.38, -3.18, -3.03, -2.9, -2.69, -2.38, -2, -1.91, -1.74, -1.41, -1.16, -1.06, -0.81, -0.81, -0.47, -0.29, -0.1, 0.04},
/* adf */ { 2.24, 2.32, 2.93, 1.53, 0.82, -0.68, -0.25, 0.4, -0.21, -0.07, 1.58, 2.3, 2.36, 1.24, 0.03, 0.28, -2.55, -2.72, -1.28, 0.73},
/* ultra */ { 5.86, 3.66, 1.3, -0.79, -2.65, -3.54, -4.79, -5.66, -6.05, -6.33, -5.31, -5.96, -4.87, -4.76, -4.17, -1.98, -2.79, -0.66, 2.09, 1.84},
};
const float v4_6_harmonic_lna_level_offset = 0; // should be in correction table now -7; // Depends on where the transition to harmonic is done!!!!!! TODO find best frequency to transition to harmonic

@ -408,7 +408,7 @@ VNA_SHELL_FUNCTION(cmd_leveloffset)
{
// 0 1 2
#ifdef TINYSA4
static const char cmd_mode_list[] = "low|switch|receive_switch|out_switch|lna|harmonic|shift|shift1|shift2|shift3|shift4|drive1|drive2|drive3|direct|direct_lna|ultra|ultra_lna|harmonic_lna|adf";
static const char cmd_mode_list[] = "low|switch|receive_switch|out_switch|lna|harmonic|shift|shift1|shift2|shift3|shift4|drive1|drive2|drive3|direct|direct_lna|ultra|ultra_lna|harmonic_lna|adf|direct_output|low_output";
#else
static const char cmd_mode_list[] = "low|high|switch|receive_switch";
#endif
@ -424,7 +424,7 @@ VNA_SHELL_FUNCTION(cmd_leveloffset)
#endif
#ifdef TINYSA4
shell_printf(p, "low", config.low_level_offset);
shell_printf(p, "low output", config.low_level_output_offset);
shell_printf(p, "low_output", config.low_level_output_offset);
shell_printf(p, "switch", config.switch_offset);
shell_printf(p, "receive_switch",config.receive_switch_offset);
shell_printf(p, "out_switch", config.out_switch_offset);
@ -444,7 +444,7 @@ VNA_SHELL_FUNCTION(cmd_leveloffset)
shell_printf(p, "ultra", config.ultra_level_offset);
shell_printf(p, "ultra_lna", config.ultra_lna_level_offset);
shell_printf(p, "adf", config.adf_level_offset);
shell_printf(p, "direct output",config.direct_level_output_offset);
shell_printf(p, "direct_output",config.direct_level_output_offset);
#endif
return;
}
@ -484,6 +484,8 @@ VNA_SHELL_FUNCTION(cmd_leveloffset)
case 17: config.ultra_lna_level_offset = v; break;
case 18: config.harmonic_lna_level_offset = v; break;
case 19: config.adf_level_offset = v; break;
case 20: config.direct_level_output_offset = v; break;
case 21: config.low_level_output_offset = v; break;
#endif
default: goto usage;
}

@ -6676,6 +6676,7 @@ int validate_level(int i) {
#ifdef TINYSA4
float measure_jump(int i) {
(void) i;
redraw_request |= REDRAW_AREA | REDRAW_CAL_STATUS;
draw_all(TRUE);
float left=0,

Loading…
Cancel
Save

Powered by TurnKey Linux.