Technical Topics > Software
SDR programming?
skeezix:
I have a Perseus, but want to do some stuff that isn't possible with the std GUI software.
Initially, I want to choose a bunch of frequencies to track & record the signal strength of a signal on a frequency, 24x7. Since carriers aren't exactly _right_ on a specified frequency, need to have a sludge factor of +/- 100 Hz to find the thing nearby and then track it. If it goes beyond +/- 100 Hz, then it can be forgotten about.
The input would be a list of frequencies and a name of the log file. The output would be the frequency, date, time, and signal level. Maybe shift from listed frequency, but since my Perseus doesn't have one of those high precision oscillators, I wouldn't put too much into adding freq drift.
In the GUI, the Perseus can go up to 1600 kHz of bandwidth received & demodulated, but they have a little program that displays the entire 0-40 MHz spectrum, but not in great detail. Which tells me this thing can go very wide, but in limited means. All I want is amplitude. If I have to restrict to 1600 kHz, well, not ideal, but will still work with that.
Down the road... want to do more and be able to specify freq + bandwidth and record AM/SAM signals. Scattered across the band, possibly simultaneously on a schedule.
And all via CLI only, on Mac, FreeBSD and/or Linux. No fancy GUI nonsense.
So The Question® is, where to begin? ;D
I have a book on DSP, can do Perl and some minor hacking in C.
While I'd like to use the Perseus since I already have it, I would not object to buying a less expensive SDR that may be easier to program.
Would also like to get an SDR with the 10 MHz reference to study the frequencies of the stations, incl the time & freq standards. How does WWV's signal shift by the time it gets here?
ChrisSmolinski:
A number of years ago, I did something similar with my SDR-14, to track the amplitude of various stations, for some propagation studies. In that case, I used the raw A/D values from the SDR, which let me run an FFT on the entire HF spectrum. I assume you may want to do something similar?
I don't know anything about the Perseus interfacing, I just deal with RF Space SDRs (which have the added advantage that they released the app CuteSDR as open source, so it can be used as a starting point for your own SDR app). So your first step would be to figure out how to talk to the Perseus, and start getting data. While you are doing that, you could probably get the existing Perseus app to save some raw A/D data as a file? If so, you could use that as test data to start working on your signal processing coding.
If you want to see the results of some work I did with looking at carrier drift, I think I have some posts scattered around the MW board here on the HFU. I was running 8M point FFTs IIRC.
skeezix:
I took a quick look at RFSpace for their models, but WAY above my budget (although, specs are perfect, esp that NetSDR+ with a couple of the options).
CloudIQ may be in the realm of possibility at some point this year. Are you familiar with that one?
Didn't know they released CuteSDR as open source and there is also GNU Radio. Those should be a great start.
The Perseus software does save files and I have TB of them (as well as from Studio1). And, that's another thing I'd want to do is to be able to read in recordings and do analysis on them, as if it was live. I know third party can do something with Perseus as Studio1 does. They interface to it via the a DLL, but that does me no good whatsoever on Mac, FreeBSD or Linux.
I do remember seeing the carrier drift articles, nothing short of fascinating and have read them several times. Do more!
Oh my :o : 6th Annual GRCon, Sep 12-16: http://gnuradio.org/grcon-2016/
ChrisSmolinski:
I did write some code to read the Perseus I/Q files for my SDR playback app, that I can share if you're interested: http://www.blackcatsystems.com/software/sdr_iq_recording_playback_program.html
It's all written in Cocoa via Xcode on the Mac. The app is loosely based on the CuteSDR code, I converted various bits of DSP code from C++ to objective C. I deal just with I/Q data, not raw A/D data, however.
skeezix:
Cool, thanks. I think I tried that way back then, but don't remember where I put the app (I tend to put things "for safe keeping" after a while, which means they get lost. For the longest time, I kept doing that with one of my books. I've finally found it again and not going to let it out of my sight. Ever).
And if I can peek at the source, I am definitely interested.
Hopefully I don't have to wait until after:
--- Quote ---Last modified September 17, 2016
--- End quote ---
Navigation
[0] Message Index
[#] Next page
Go to full version