Saturday, December 26, 2015

Re: [Discuss-gnuradio] create lookup tables

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
Discuss-gnuradio@gnu.org
https://lists.gnu.org/mailman/listinfo/discuss-gnuradio

No comments:

Post a Comment