On Thu, Jan 12, 2012 at 11:15 AM, Domenic Magazu III
<address@hidden> wrote:
All,
In creating an application that requires Pulse Position Modulation we generated a GRC file using the chunks to symbols block. Everything worked perfectly except in small areas where we need the amplitude to remain unchanged (~ at zero). 1s are mapped to 10 and 0's are mapped to 01. Does anybody have input or ideas on how to create 'space' for lack of a better word between 1's and 0's at desired points.
Example 1010_____0101_______
Amplitude increase at 0 seconds for 10 and increase at 1 microsecond for the second 10. Then there should be a gap in amplitude change and continue with amplitude change for 01 01...so on and so on.
Thank you
Domenic
For this one, the best thing might be to make your own block that handles this.
The other thing that I'll suggest, and you'll have to play with it to see if it'll actually work, is to use the sample_and_hold block. If you can generate a square wave with the period that you want out of the signal, you can use that as the control line into this block. The work function is simple (and pasted below); it's in the gnuradio-core/src/lib/gengen directory, which is why it looks the way it does with the @address@hidden
Tom
int
@NAME@::work (int noutput_items,
gr_vector_const_void_star &input_items,
gr_vector_void_star &output_items)
{
@I_TYPE@ *iptr = (@I_TYPE@ *) input_items[0];
const char *ctrl = (const char *) input_items[1];
@O_TYPE@ *optr = (@O_TYPE@ *) output_items[0];
for (int i = 0; i < noutput_items; i++){
if(ctrl[i]) {
d_data = iptr[i];
}
optr[i] = d_data;
}
return noutput_items;
}