Hi Marcus,
Well, first:
Signal Source can't produce 8bit signed integers by itself, so you'll
have to convert whatever you configure the signal source for to char,
eg. you could set it to "float" and use the "float to char"
conversion. Make sure the result has amplitude 127. Properly configure
your signal source for the desired sine period, e.g. sample_rate=X ,
frequency = X/256.
So if i want to have a sine with frequency 1 hz and 256 samples per sine
period i have to set samplerate to 256 ?
1hz = 256/256
Then, use a "head" block with that period, and pipe the result to a
file sink; use the char/byte type of everything. Done. Pretty
straightforward, I guess :)
The head block has 2 parameters: number of items, vector length
The number of items is the amount of samples for a sine period = 256 in
this case ?
As a side note: that's really a bit of a corner use case; a single
line of python would probably be easier:
import numpy
(numpy.sine(numpy.linspace(0,2*numpy.pi,256)) *
127).astype(numpy.int8).tofile("/tmp/sinetable.dat")
This works perfect. Now i have a table with one sine period.
Now this is non specific gnuradio question, but how is it possible with
python to create a sine with 1 hz from this lookup table.
My first idea is: python has to sample the 256 samples (for one period)
from lookup table in exactly one second. So i think i need a timer which
calls the next sample in the lookup table all 3,9 ms.
in C, that program wouldn't be much longer.
and maybe faster ?!
Best regards,
Marcus
regards,
Andy :-)
_______________________________________________
Discuss-gnuradio mailing list
[email protected]
https://lists.gnu.org/mailman/listinfo/discuss-gnuradio