discuss-gnuradio
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: Resource issues when trying to record 2 FM broadcast stations


From: Marcus Müller
Subject: Re: Resource issues when trying to record 2 FM broadcast stations
Date: Tue, 16 May 2023 00:11:18 +0200
User-agent: Mozilla/5.0 (X11; Linux x86_64; rv:102.0) Gecko/20100101 Thunderbird/102.10.0

Hi Martin,

On 13.05.23 17:40, Martin Lefkowitz wrote:
I  haven't spent a whole lot of time working with gnuradio.

Well, then: Welcome to the GNU Radio community!

I'm not a DSP engineer.  I am however a software engineer that has dealt with signals so not completely a laymen, but I am out of my comfort zone.

Let's rephrase this: Welcome to the GNU Radio community, the newly-found extension of your comfort zone ;)

I  had successfully created this project about 4 years ago using Marcus Leech's Stereo FM Radio implementation and grafting it into the front design of this  the multiple station receiver design. Described here

https://forums.radioreference.com/threads/multiple-fm-station-receiver.341340/#lg=_xfUid-2-1556650274&slide=0

Looks fine :) You could have also absorbed the 1/4-resampler into the freq xlating FIR filter (by setting the decimation to 4), but the only benefit of that would have been slightly reduced computational load.
For a bit of documentation on the Frequency XLating FIR Filter:
https://wiki.gnuradio.org/index.php?title=Frequency_Xlating_FIR_Filter (the top right spectrum diagram I think explains quite nicely what I mean with "let the Xlating FIR filter also do the decimation" :) )


I recorded 2 pirate radio stations at a 4 day music festival. Started the recording on Thursday.  Stopped it on Sunday.  The sample rate was 2.4M.  I created an Heir block that had the appropriate parts of Marcus Leech's Stereo FM radio in it.  and replaced everything from the xlating FIR to the multiply const in the second block figure above with the heir block, and added some WXQT blocks to handle the gui for 2 stations like wav sinks, file names, etc.  It was successful, but one thing that did happen was I needed to go from a Acer 720 (celeron) with Gallium installation to an (older) I5 laptop.

I let that project sit for a couple of years.  The first thing I did when I got back to it was upgrade everything.  Big mistake... Nothing worked after that.

Well, WX GUI was indeed removed a couple of years ago, as we had nobody that knew how to fix its bugs anymore. But for your purposes, Qt GUI should offer a drop-in replacement. The rest of the blocks should be the same as in the GNU Radio 3.7 era, no?

I got grc 3.10 running with radioconda.  I swapped Marcus's implementation out for Zan's fm_stereo_demod_clean

https://forums.radioreference.com/threads/multiple-fm-station-receiver.341340/#lg=_xfUid-2-1556650274&slide=0

http://zansprojects.blogspot.com/2019/05/stereo-fm-receiving-with-rtl-sdr-and.html

In this new implementation I needed to create a series of variables to handle the design issue of having the signal be a multiple of 48k for the audio sink to be the correct speed.  In particular the decimations in the rational resampler.This worked, but when I changed the sample rate to widen the bandwidth to receive 2 stations further apart on the FM band than 1Mhz I ran into performance issues.  Basically with my setup the CPU load is about 90% with a sample rate of 1.24 Mhz.

Could you really share your flow graph with us? This is a bit strange to understand by reading about modifications on a 3.7-era (so, obsolete) blog post of someone else - I'd much rather analyze your flow graph than someone else's :)

I was able to do this because of the great work done by the people mentioned above, but figuring out how to deal with the performance issues is kind of beyond the disciplines I am familiar with.

These sound likely to be caused by switching to that other flow graph and using inelegantly related sampling rates or filter bandwidths, but I can really only speculate without seeing your flow graph :)

I am wondering if anybody has any suggestions on how to get fm_stereo_demod_clean to have better performance.  I did not see an updated version of the Marcus Leech design so I figured there was something blocking that update, but maybe that is incorrect.

Don't think so. All that might have happened is that Marcus (Leech, aka. the Marcus the Wiser) didn't have the time (or energy, or attention …) to port that.

Matter of fact, we have a – hopefully sensibly working – example in our wiki of a single-station stereo FM receiver. Should work out of the box, no need to recreate Marcus L's hier block to get stereo:

https://wiki.gnuradio.org/index.php?title=WBFM_Receive_PLL

Combine that with your original Freq' Xlating FIR approach, and it *should* 
work :)

I am also wondering if I could get a more powerful laptop/NUC and make it work with brute force by throwing money at the project.  I would love to hear any suggestions from people with more grc and dsp experience, or which path I should take now.

This should technically work on a slightly overprovisioned toaster microcontroller, so I don't think that'll be necessary :)

Let's have a look at your flow graph together :)

Best regards,
Marcus



reply via email to

[Prev in Thread] Current Thread [Next in Thread]