[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Discuss-gnuradio] pipe trick
From: |
Chuck Swiger |
Subject: |
Re: [Discuss-gnuradio] pipe trick |
Date: |
Sun, 10 Apr 2005 09:40:34 -0400 |
At 03:02 AM 4/10/2005 -0400, you wrote:
How are you _reading_ the data from the pipe? Even if you're flushing
the data into the pipe after every write, the reader could be
buffering it.
Tks Dave - yes, yesterday I put a vector_sink_b after the
file_descriptor_source
of the pipe and verified that it is reading ALL the date sent across it.
That is, after sending 20 \0xaa characters, the vector contains
(170, 170, 170, 170 ... 170, 170) all 20 of them.
The little trickle of data going out to the usrp every byte written is
interesting
and just now measured this:
bytes written to pipe size of output to usrp meaning
----------------------------- ------------------------------- ------------
2 49144 6143 complex samples 49144 / 8
6143+1 = 3 * 2048
2048 is size of
bytes_to_syms interpolation
3 65528 8191 complex samples
8192+1 = 4 * 2048
4 81912 10239 complex samples
10239+1 = 5 * 2048
etc
Every byte written to the pipe is /supposed/ to produce 8 * 2048 * 25 =
409600 samples
the output rate to the usrp is 1.6msps (usrp interpolates by 80 to get
128e6) so it only
has to write about 4 characters / second to the pipe to keep it stuffed (
or approximately
3.906 as Spock would say ). Then, as soon as I close the pipe after
getting these
little 'ticks' of data, boom, it takes off and processes the data at full
speed and produces
the correct output and prints text on a nearby receiver and psk31 software.
This didn't happen with a pipe head and a sound card sink - only with the
usrp at the tail.
Even changed the bytes_to_syms interpolation back to 256 as in the sound
card version,
but still get the same issue with the usrp.
Interestingly, the X25 interp fir filter doesn't show up mathematically in
the output, even
tho it's in the stream. It's like the entire gnuradio stream is being
clocked by the pipe and the
X2048 bytes_to_syms interpolator at the beginning.
--Chuck