DSPRelated.com
Forums

Matlab code needed for SSB demodulation

Started by Rick Lyons June 30, 2012
<danielot@gmail.com> wrote:

>Following DSPRelated moderator's advice, I'm moving this thread to the >DSPrelated forum:
>https://www.dsprelated.com/thread/2946/matlab-code-for-ssb-demodulation-using-phasing-method > >I've put there a much easier to follow code.
Note that, not everybody on this newsgroup follows DSPRelated and so by moving the thread, you have lost some of your potential audience that might answer your questions. That said, have you tried using Mathwork's "fdatool" to create the Hilbert transformer? It should be dead easy to create an SSB demodulator by this method. Steve
On 11.5.17 01:03, Steve Pope wrote:
> <danielot@gmail.com> wrote: > >> Following DSPRelated moderator's advice, I'm moving this thread to the >> DSPrelated forum: > >> https://www.dsprelated.com/thread/2946/matlab-code-for-ssb-demodulation-using-phasing-method >> >> I've put there a much easier to follow code. > > Note that, not everybody on this newsgroup follows DSPRelated and > so by moving the thread, you have lost some of your potential > audience that might answer your questions. > > That said, have you tried using Mathwork's "fdatool" to create > the Hilbert transformer? It should be dead easy to create > an SSB demodulator by this method. > > Steve
I just wonder if the OP is barking up the wrong tree. There must be good grounds to suspect that there is noise/interference on one sideband but not on the other, and this is the situation where SSB demodulation will work. The crud near the carrier could be from low modulation index PM sidebands, which look pretty much similar to AM sidebands, except for 90 degree phase difference compared to carrier. Noisy oscillators create easily small jitter for PM sidebands. --- And - yes, I'm not going to another forum. -- -TV
On Wednesday, May 10, 2017 at 7:03:07 PM UTC-3, Steve Pope wrote:
> <danielot@gmail.com> wrote: > Note that, not everybody on this newsgroup follows DSPRelated and > so by moving the thread, you have lost some of your potential > audience that might answer your questions.
Hi Seteve, thanks for the tip. I'll keep up discussions in both forums for now. I hope this won't bother who are subscribed to both lists.
> That said, have you tried using Mathwork's "fdatool" to create > the Hilbert transformer? It should be dead easy to create > an SSB demodulator by this method.
Yes, I've tried it but I can't still achieve what I wanted (demodulate only one of the sidebands to baseband). SSB modulation is easy, I could do it. But downconverting to baseband only one of the sidebands is what I cannot find how to do. I couldn't find one single demodulation code example online. All examples I've come across are for modulation. If anybody could share a very simple demod example code (or point to one) I would be extremely grateful. Thanks, Daniel
On 11.05.2017 17:56, danielot@gmail.com wrote:
> On Wednesday, May 10, 2017 at 7:03:07 PM UTC-3, Steve Pope wrote: >> <danielot@gmail.com> wrote: > >> That said, have you tried using Mathwork's "fdatool" to create >> the Hilbert transformer? It should be dead easy to create >> an SSB demodulator by this method. > > Yes, I've tried it but I can't still achieve what I wanted (demodulate only one of the sidebands to baseband). SSB modulation is easy, I could do it. But downconverting to baseband only one of the sidebands is what I cannot find how to do. >
Why would you want to "downconvert to baseband only one of the sidebands"? Not that it's impossible to do, but I believe Steve didn't suggest that! Instead, you downconvert the both sidebands to baseband, then use a Hilbert transform filter to separate the sidebands, or to suppress the undesired sideband. Gene
On Thursday, May 11, 2017 at 9:54:12 AM UTC-3, Tauno Voipio wrote:
> On 11.5.17 01:03, Steve Pope wrote: > > <danielot@gmail.com> wrote: > > I just wonder if the OP is barking up the wrong tree. There > must be good grounds to suspect that there is noise/interference > on one sideband but not on the other, and this is the situation > where SSB demodulation will work. > > The crud near the carrier could be from low modulation index > PM sidebands, which look pretty much similar to AM sidebands, > except for 90 degree phase difference compared to carrier. > Noisy oscillators create easily small jitter for PM sidebands. >
This is interesting. The problem here is that my RF comes from an analog front-end which performs switching between two channels. This is done to correlate drifts of RF amplifiers of the 2 different RF channels. To model it, we can think of two 500 MHz sinusoids modulated by 2 quasi-square wave with 50% duty cycle, shifted 180 deg one to the other, and then summation of those 2 modulated signals. In time domain we can notice very small phase and amplitude jumps in the switch transition points, but if we try to model it in frequency-domain, there would be quite a mess interfering in the 500 MHz carrier due to the convolution of the RF spectrum with the several square wave harmonics. If this explanation looks confusing, I'll try to put it in a more clear way in a longer text.
> --- > > And - yes, I'm not going to another forum.
Ok.
On Thursday, May 11, 2017 at 12:18:30 PM UTC-3, Evgeny Filatov wrote:
> Instead, you downconvert the both sidebands to baseband, then use a > Hilbert transform filter to separate the sidebands, or to suppress the > undesired sideband.
Thanks, Gene. I think I'm starting to understand my failure. I was using the Hilbert transform as a passband in a "audio" IF, but now I'm realizing I should use it when my downconverted signal is already in DC. Is it right? Does it mean then that I'll always loose a considerable ammount of power around DC, since the Hilbert transform filter will be transitioning to stopband at this region? This wouldn't be tolerated in my application, so this may mean end of the line... Daniel
Evgeny Filatov  <filatov.ev@mipt.ru> wrote:

>Why would you want to "downconvert to baseband only one of the sidebands"? > >Not that it's impossible to do, but I believe Steve didn't suggest that! > >Instead, you downconvert the both sidebands to baseband, then use a >Hilbert transform filter to separate the sidebands, or to suppress the >undesired sideband.
Seems to me if R(t) is the received signal at RF or IF, H is a Hilbert transformer, and { I(t), Q(t) } is a quadrature oscillator at the carrier frequency, then LPF ( I(t)R(t) + Q(t)H(R(t) ) gives you one sideband at baseband. Noise (or signal) within the other sideband is suppressed. Although, I'm not all the way through my morning coffee so ... This (if correct) is the "phasing method at IF" which was once popular since the passband of the Hilbert transformer is narrow relative to its operating frequency. It was - back then - more difficult to construct a Hilbert transformer at baseband. The only real problem should be carrier recovery. Steve
Steve Pope <spope33@speedymail.org> wrote:

>Evgeny Filatov <filatov.ev@mipt.ru> wrote:
>>Why would you want to "downconvert to baseband only one of the sidebands"?
>Seems to me if R(t) is the received signal at RF or IF, H is a Hilbert >transformer, and { I(t), Q(t) } is a quadrature oscillator at the carrier >frequency, then LPF ( I(t)R(t) + Q(t)H(R(t) ) gives you one sideband at >baseband. Noise (or signal) within the other sideband is suppressed. > >Although, I'm not all the way through my morning coffee so ... > >This (if correct) is the "phasing method at IF" which was once popular >since the passband of the Hilbert transformer is narrow relative to >its operating frequency.
Here's a diagram. (Looks like I guessed right!) See Figure 5 in this document from the helpful folks at ARRL. https://www.arrl.org/files/file/Technology/tis/info/pdf/98qex003.pdf (The decimation filter / decimation by 4 can be ignored.) Steve
On 11.05.2017 18:54, danielot@gmail.com wrote:
> On Thursday, May 11, 2017 at 12:18:30 PM UTC-3, Evgeny Filatov wrote: >> Instead, you downconvert the both sidebands to baseband, then use a >> Hilbert transform filter to separate the sidebands, or to suppress the >> undesired sideband. > > Thanks, Gene. I think I'm starting to understand my failure. I was using the Hilbert transform as a passband in a "audio" IF, but now I'm realizing I should use it when my downconverted signal is already in DC. Is it right?
It's a way to do that.
> Does it mean then that I'll always loose a considerable ammount of power around DC, since the Hilbert transform filter will be transitioning to stopband at this region? > > This wouldn't be tolerated in my application, so this may mean end of the line... > > Daniel >
It's a bit too specific question, I'm afraid. Would you possibly explain what sort of "undesired effects" do you have, and why do you think SSB demodulation might help? Gene
On 11.05.2017 19:35, Steve Pope wrote:
> Steve Pope <spope33@speedymail.org> wrote: > >> Evgeny Filatov <filatov.ev@mipt.ru> wrote: > >>> Why would you want to "downconvert to baseband only one of the sidebands"? > >> Seems to me if R(t) is the received signal at RF or IF, H is a Hilbert >> transformer, and { I(t), Q(t) } is a quadrature oscillator at the carrier >> frequency, then LPF ( I(t)R(t) + Q(t)H(R(t) ) gives you one sideband at >> baseband. Noise (or signal) within the other sideband is suppressed. >> >> Although, I'm not all the way through my morning coffee so ... >> >> This (if correct) is the "phasing method at IF" which was once popular >> since the passband of the Hilbert transformer is narrow relative to >> its operating frequency. > > Here's a diagram. (Looks like I guessed right!) See Figure 5 in this > document from the helpful folks at ARRL. > > https://www.arrl.org/files/file/Technology/tis/info/pdf/98qex003.pdf > > (The decimation filter / decimation by 4 can be ignored.) > > Steve >
Looks fun! Will enjoy reading it. Thanks! Gene