As Marcus mentioned, this flowgraph should not really consume that much
CPU.

The hackrf does not have a FPGA, although possible with other SDRs, this
should really be fine to run on a CPU.

One approach I've used in the past with higher bandwidth applications
(50MS/s) was to precompute as much as possible and then just play back the
file. Depending on what your final objective is, this approach may work.

For example you could have a separate flowgraph with parameter blocks
inputs that runs headless and take in a wav file name and a signal source
freq and have it output a fc32 i/q file. Then preprocess each wav for the
channel you want.

Another flowgraph could read the IQ file and send it over a ZMQ socket with
a pub sink (using ipc://) to the third flowgraph running with ZMQ Sub
sources, adding the streams, and then playing it out over the hackrf.

On Wed, Oct 14, 2020 at 6:37 PM Ron Economos <w...@comcast.net> wrote:

> Your add_blk27 usage seems high. This leads me to believe you may not have
> run volk_profile.
>
> Run volk_profile in terminal. Since it's measuring timing, preferably
> without other processes interfering (for example, you should shut down
> stuff like web browsers and e-mail clients).
>
> You could also use a lower final sample rate. You could pack your FM
> carriers every 400 kHz, and get away with a sampling rate around 2.4 Msps
> for five carriers. You could also try 200 kHz spacing, but your FM receiver
> may not like that.
>
> Ron
> On 10/14/20 18:07, Anish Mangal wrote:
>
> That is what it seems like...
> https://pasteboard.co/JvGuqC7.png
>
> This is on i7-4900MQ. I also updated the gnuradio-companion to 3.8.2.0
> (Python 3.6.9).
>
>
>
> On Thu, Oct 15, 2020 at 1:33 AM Ron Economos <w...@comcast.net> wrote:
>
>> The Rational Resampler uses a lot of CPU cycles. Upgrading to GNU Radio
>> 3.8 won't help.
>>
>> Ron
>> On 10/14/20 08:01, Anish Mangal wrote:
>>
>> Thanks. I'll look at both those points before reverting. :)
>>
>> On Wed, Oct 14, 2020 at 7:18 PM Marcus Müller <muel...@kit.edu> wrote:
>>
>>> again,
>>>
>>> 1. outdated GNU Radio. More modern GNU Radio might perform better.
>>> Updating isn't really optional when you're musing about performance.
>>> 2. actually benchmark where your CPU is going. `htop` is a good tool if
>>> you turn on "thread names" in its settings.
>>>
>>> Best regards,
>>> Marcus
>>>
>>> On 14/10/2020 15.26, Anish Mangal wrote:
>>> > Hi Marcus,
>>> >
>>> > Thanks for the quick reply. Here's a more complete flow diagram that
>>> > doesn't use the block I mentioned above.
>>> >
>>> > https://pasteboard.co/JvBTisO.png
>>> >
>>> > This uses up most of my CPU, so I was wondering whether it was
>>> possible
>>> > to spread this across multiple distinct computers. I'm sorry, that I
>>> > can't share my most up to date block diagram which uses actual audio
>>> > sources instead of coldplay songs, as it is on another machine which I
>>> > dont have access to at the moment, but this gives a fairly good idea
>>> > about the number of blocks and processing units.
>>> >
>>> > Thoughts?
>>> >
>>> >
>>> >
>>> > On Wed, Oct 14, 2020 at 6:48 PM Marcus Müller <muel...@kit.edu
>>> > <mailto:muel...@kit.edu>> wrote:
>>> >
>>> >     Hi Anish,
>>> >
>>> >     what your subject line says, distributing across CPUs, GNU Radio
>>> does
>>> >     automatically.
>>> >
>>> >     Across multiple distinct computers, you'll need to add some signal
>>> >     communications between these computers. The ZeroMQ network sinks
>>> and
>>> >     sources do that for you.
>>> >
>>> >     But honestly, the flow graph you show should use nearly no CPU at
>>> all.
>>> >     You should investigate what, in your overall flow graph, not just
>>> in
>>> >     the
>>> >     excerpt you showed, uses up your CPU. This should really not be a
>>> big
>>> >     task for your computer.
>>> >
>>> >     Also, you're using an outdated version of GNU Radio. Time to
>>> update!
>>> >
>>> >     Best regards,
>>> >     Marcus
>>> >
>>> >     On 14/10/2020 15.07, Anish Mangal wrote:
>>> >      > Hi, This is my very first post to this mailing list, so hello to
>>> >     all. I
>>> >      > am a beginner in experimenting with gnuradio and sdr
>>> >     (hackrf-one). I am
>>> >      > working on an application where I want to take multiple audio
>>> input
>>> >      > sources and transmit multiple FM signals over one RF channel
>>> via the
>>> >      > SDR. To this end, I created a basic grc block that looks like
>>> this:
>>> >      >
>>> >      > https://pasteboard.co/JvBGgj5.png
>>> >      >
>>> >      > My plan is to have a top level flow diagram using multiple such
>>> >     blocks
>>> >      > and sum them to produce a composite FM signal through the
>>> >     hackrf-one.
>>> >      > With my 4th generation intel i7 CPU, with the hackrf's bandwidth
>>> >     set to
>>> >      > 6MSPS, I am able to transmit 6 simultaneous fm modulated
>>> signals. My
>>> >      > question is this:
>>> >      >
>>> >      > Is it possible to spread this task across multiple computers.
>>> If one
>>> >      > computer could produce the FM modulated signals, and the other
>>> >     computer
>>> >      > sum them and transmit via the SDR, the number of simultaneous
>>> >     streams
>>> >      > may be increased.
>>> >      >
>>> >      > Another approach might be to offload parts of this block diagram
>>> >     to an
>>> >      > FPGA processing unit.
>>> >      >
>>> >      > My challenge is this. I have no experience of working with an
>>> >     FPGA, and
>>> >      > limited experience with gnu-radio in general, but I am prepared
>>> >     to put
>>> >      > in the effort required, however, if someone more experienced
>>> than
>>> >     me can
>>> >      > guide me on the proper approach to go about this, it would be
>>> very
>>> >      > helpful. It may be that I just keep all the processing on ONE
>>> >     powerful
>>> >      > CPU, and whatever is the max number of simultaneous streams I
>>> can
>>> >     get,
>>> >      > that's it. But if there are cost effective ways of making this
>>> >     design
>>> >      > more efficient, I'm happy to research and experiment.
>>> >      >
>>> >      > 73,
>>> >      > VU2TVE // Anish
>>> >      >
>>> >
>>>
>>

Reply via email to