I just started working with GNU Radio and have trouble to understand what block type I should use for demodulating data correctly.
I'm trying to realize a pulse position-modulation where each symbol has 4 positions for the pulse (4-VPPM). At the moment I use a interpolation block to generate a preamble sequence followed by the vppm-symbol and a UHD USRP Sink for transmitting the data. On the receiver side I use a second laptop and a UHD USRP Source to get the data in my flow graph. I already wrote a block of type sync_block to detect the preamble and add a tag at the correlation peak.
Now I want to demodulate the data to the original byte that was modulated before but I'm not sure which block type is best for this task: First I thought to use a decimation block as it has a fixed rate for input-to-output. But if the block read i.e. 6000 samples (the length of a vppm symbol) and the tag is in samples 5000 and the pulse is at 5000 + 3000 it is not included in the current 6000 samples.
Question: what block type would be the best to demodulate the vppm symbol correctly? What should I ensure when programming the block (i.e. forecast()-function)?