fix(dmr): center discriminator eye per sync

This commit is contained in:
2026-07-14 19:47:55 +03:00
parent a633bf57cd
commit 22505d4df7
2 changed files with 61 additions and 17 deletions
+7 -5
View File
@@ -67,6 +67,8 @@ begin
end;
procedure TestBurst(D: TDMRDecoder);
const
DC_OFFSET = 0.12;
var
Want, Got: array[0..DMR_BURST_DIBITS - 1] of Byte;
L, R: array of Single;
@@ -84,17 +86,17 @@ begin
SetLength(R, Length(L));
// One complete preceding symbol mirrors a continuous stream and fills the
// 90-dibit history even for the latest timing hypothesis.
V := 0.70; // Want[0] = 1
V := 0.70 + DC_OFFSET; // Want[0] = 1
p := 3 + DMR_SAMPLES_PER_SYM;
for j := 0 to p - 1 do begin L[j] := V; R[j] := V; end;
for i := 0 to High(Want) do
begin
case Want[i] of
0: V := 0.23;
1: V := 0.70;
2: V := -0.23;
0: V := 0.23 + DC_OFFSET;
1: V := 0.70 + DC_OFFSET;
2: V := -0.23 + DC_OFFSET;
else
V := -0.70;
V := -0.70 + DC_OFFSET;
end;
for j := 0 to DMR_SAMPLES_PER_SYM - 1 do
begin