Dear List,
I am writing a custom QPSK modulator block (demod is next) and I am
caught
up on figuring out the output.
I am taking the byte data type (which I am using C++ char) and for each
bit
of the byte I would have a custom symbol per bit rate. For an absolute
minimum in a successful PSK system, I would need about two symbols per
bit.
So the sequence of data to be passed through is growing.
Now for where I am getting confused, when I come up with the I and Q
data
as a complex number I can only send out one sample at a time, right? So
for
each time my general_work executes it can send out only one sample at a
time while having even more samples calculated representing just one
value
of input_items which upon modulation would have quite a bit output
samples.
At least that is how I am interpreting the process.
How do I get out all these samples before I get the next value of the
input? Should I write the sample values to a buffer that the block
should
check whether it is full before processing the next char sample? Anyone
with experience writing modulator code have any tips? Can I keep
updating
the value of out in the general_work and it will pass on to the
flowgraph?
I have tried looking at what I believe is the PSK modulator source code,
gr_constellation.cc but it is a pretty hard piece of code to follow.
I appreciate any help and feedback.
Jon