Open xerpi opened 4 months ago
I've played a bit around it.
I have added a new function, gmskmod_modulate_raw
which lets you pass the raw sample value (_x
), then at qdetector_*_create_gmsk
I have splitted the for (i=0; i<_sequence_len + 2*_m; i++)
loop into two:
for (i=0; i<_sequence_len; i++)
which just calls gmskmod_modulate
for (i=0; i<2*_m; i++)
which calls the new gmskmod_modulate_raw
passing 0.0f as the sample valueThis generates the follow sample sequence: Notice how the tail of the phase (green) goes to 0.
qdetector_*_create_gmsk
callsgmskmod_modulate
with the_sequence
symbols passed (of length_sequence_len
) plus the2*_m
extra symbols corresponding to the filter delay (_m
). Those extra symbol delay symbols are passed as0
s:https://github.com/jgaeddert/liquid-dsp/blob/9f32eb7b956738ac18d6d19ac0a7da5ea6e1e5a0/src/framing/src/qdetector.proto.c#L211-L212
Since we are making the extra symbols a "hard"
0
, the generated samples' phase looks like: This was generated by callingqdetector_cccf_create_gmsk
with:{0, 0, 1, 1, 0, 0, 1, 1, 0, 0, 1, 1, 0, 0, 1, 1, 0, 0, 1, 1, 0, 0, 1, 1}
(24 symbols)Notice how the tail stays at a "low position". Shouldn't the tail be all 0s instead? Otherwise when correlating, those samples will have an influence. I have the impression that something like this would be desirable: