mirror of
https://github.com/ttrftech/NanoVNA.git
synced 2025-12-06 03:31:59 +01:00
chore: group delay
This commit is contained in:
parent
7ad51be1e4
commit
55cacef4d4
36
plot.c
36
plot.c
|
|
@ -502,6 +502,20 @@ cartesian_scale(float re, float im, int *xp, int *yp, float scale)
|
||||||
*yp = HEIGHT/2 - y;
|
*yp = HEIGHT/2 - y;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static float
|
||||||
|
groupdelay_from_array(int i, float array[101][2])
|
||||||
|
{
|
||||||
|
if (i == 0) {
|
||||||
|
float deltaf = frequencies[1] - frequencies[0];
|
||||||
|
return groupdelay(array[0], array[1], deltaf);
|
||||||
|
} else if (i == 100) {
|
||||||
|
float deltaf = frequencies[i] - frequencies[i-1];
|
||||||
|
return groupdelay(array[i-1], array[i], deltaf);
|
||||||
|
} else {
|
||||||
|
float deltaf = frequencies[i+1] - frequencies[i-1];
|
||||||
|
return groupdelay(array[i-1], array[i+1], deltaf);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
uint32_t
|
uint32_t
|
||||||
trace_into_index(int x, int t, int i, float array[101][2])
|
trace_into_index(int x, int t, int i, float array[101][2])
|
||||||
|
|
@ -519,16 +533,7 @@ trace_into_index(int x, int t, int i, float array[101][2])
|
||||||
v = refpos - phase(coeff) * scale;
|
v = refpos - phase(coeff) * scale;
|
||||||
break;
|
break;
|
||||||
case TRC_DELAY:
|
case TRC_DELAY:
|
||||||
if (i == 0) {
|
v = refpos - groupdelay_from_array(i, array) * scale;
|
||||||
float deltaf = frequencies[1] - frequencies[0];
|
|
||||||
v = refpos - groupdelay(array[0], array[1], deltaf) * scale;
|
|
||||||
} else if (i == 100) {
|
|
||||||
float deltaf = frequencies[i] - frequencies[i-1];
|
|
||||||
v = refpos - groupdelay(array[i-1], array[i], deltaf) * scale;
|
|
||||||
} else {
|
|
||||||
float deltaf = frequencies[i+1] - frequencies[i-1];
|
|
||||||
v = refpos - groupdelay(array[i-1], array[i+1], deltaf) * scale;
|
|
||||||
}
|
|
||||||
break;
|
break;
|
||||||
case TRC_LINEAR:
|
case TRC_LINEAR:
|
||||||
v = refpos + linear(coeff) * scale;
|
v = refpos + linear(coeff) * scale;
|
||||||
|
|
@ -676,16 +681,7 @@ trace_get_value_string(int t, char *buf, int len, float array[101][2], int i)
|
||||||
chsnprintf(buf, len, "%.2f" S_DEGREE, v);
|
chsnprintf(buf, len, "%.2f" S_DEGREE, v);
|
||||||
break;
|
break;
|
||||||
case TRC_DELAY:
|
case TRC_DELAY:
|
||||||
if (i == 0) {
|
v = groupdelay_from_array(i, array);
|
||||||
float deltaf = frequencies[1] - frequencies[0];
|
|
||||||
v = groupdelay(array[0], array[1], deltaf);
|
|
||||||
} else if (i == 100) {
|
|
||||||
float deltaf = frequencies[i] - frequencies[i-1];
|
|
||||||
v = groupdelay(array[i-1], array[i], deltaf);
|
|
||||||
} else {
|
|
||||||
float deltaf = frequencies[i+1] - frequencies[i-1];
|
|
||||||
v = groupdelay(array[i-1], array[i+1], deltaf);
|
|
||||||
}
|
|
||||||
string_value_with_prefix(buf, len, v, 's');
|
string_value_with_prefix(buf, len, v, 's');
|
||||||
break;
|
break;
|
||||||
case TRC_LINEAR:
|
case TRC_LINEAR:
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue