radioguy73 wrote:but from my understanding of how SCA is encoded, that should work.
All I can simply say is your understanding of SCA is incorrect. Let me point out a few things.
SCA uses subcarriers at 67 and/or 92 kHz which are completely independent of the other carriers... In other words, NONE of these things is dependent on (or related to) the carrier on the nominal channel except for the R+L signal.
It sounds like you think SCA is an entirely separate transmission. It is not. FM is multiplexed; this means that ALL of the signals are combined in to one signal that then modulates the carrier using frequency modulation. Your main analog audio program is combined with the 19khz pilot, stereo difference, RDS, and SCA signals...which all modulate the main carrier *at the same time*. That's the idea behind multiplex; you're combining multiple signals in to one for transmission.
Take digital TV for an example; you can have multiple streams on the same "channel", but since they're multiplexed; you have to decode EVERYTHING before you can get the parts you want.
FM is no different; everything is mixed in to one signal, which is then used to modulate the carrier using FM. It might seem...strange to think about recovering RF signals from audio; but SDR is essentially doing just that.
has them all jumbled together despite the lack of AGC....
Because they are. That is EXACTLY what is happening, it has nothing to do with AGC...or software...or hardware...the very nature of FM Multiplex is everything is jumbled together in to a baseband signal before that baseband is used to modulate the carrier. The only reason you are able to somewhat decode an SCA during quiet times is becuase the carrier is essentially not moving...therefore you are able to recover some of the signal. But as soon as your audio content comes back; the modulation index is so high it causes what you're noticing. You need to remember...the modulation index on WFM is huge...and there is by far MUCH more power put in to your main program than any of the sub-carriers.
For the record, I have put narrow filtering on a standard FM tuner and tried to directly pick up an SCA signal; you have less success than you do with SDR.
Isn't that the POINT of a zero IF ('direct conversion') in the first place? How would decoding the signal twice do anything different?
As far as it relates to an SDR....the zero IF just relates to how the RF gets to the ADC; in a zero IF, you are directly sampling the tuner vs a lowIF in which you're using a superhetrodyne effect. It has nothing to do in relation to decoding indvidual signals within your baseband.
But even so...if this was a standard FM tuner doing direct conversion...it doesn't change the fact that ALL of your subcarriers are multiplexed in with the main audio; so you have to demodulate the FM signal in order to get the "baseband" that was used to modulate the carrier. I'm not talking about the baseband you're getting from the tuner IC to the ADC; I'm talking about the individual baseband used for one particular FM signal.
I actually started doing work on this a little over a year ago when I was playing around with RTL-SDR stuff. There wasn't a lot of information available; but I looked at several SCA hardware receivers. They all rely on getting a raw MPX baseband from the FM demodulator, and then they further "tune" to the 67khz NFM carrier within.
The thing you need to remember is the signals are multiplexed; they are not separate. You *HAVE* to decode the entire FM signal in order to demodulate the multiplexed components.
Is that a flaw in the implementation of CubicSDR, an issue with the SDRPlay itself, or something else I'm overlooking?
It's not an issue with the software or the SDRPlay; it's your lack of understanding exactly how multiplex works on FM. One can have a good grasp of how FM modulation itself works without any understanding of how multiplex works.
I covered this in a video I did last year (
https://www.youtube.com/watch?v=hF6nCtayKek), using basically the exact method I used.
Again...ZeroIF/LowIF/direct conversion has *nothing* to do with decoding SCAs....for the purposes of SDR...that only has to do with getting from the tuner front-end in to the ADC. In regards to wideband FM broadcasting; you cannot direct-convert a signal that is multiplexed *with others*. If it was AM....yes...you could. I can pull the signals out of a VOA radiogram without demodulating it; but FM and AM are two entirely different beasts.
You have to demodulate the entire FM signal in order to be able to extract/demodulate the sub-carriers. The sub-carriers are contained within the baseband...which modulates the carrier. It's all mixed together before it even hits the exciter. I have 192khz files created in software that if I play them directly in to an FM exciter; I will get FM Stereo with RDS.
The issue is; you have to find software that *isn't* doing usual wideband FM de-emphasis/filtering or otherwise modifying the 100khz baseband it's demodulating from the actual FM signal. But you'll have to pipe that stream in to another SDR program to further demodulate the 67khz NFM. Most "WFM" modes in most software makes little to no provision for this; HDSDR and the MPX Output for SDR# are the only two I've found...at least on Windows.
Hardware receivers have to demodulate the whole signal before demodulating SCA...it's just how it works. If you find some other way of doing it...then you'd be the first.
73,
-Jay