0

I've managed to use SSB digitally to create frequency envelopes such that I can increase frequencies at any arbitrary rate given by my envelop. But I am unable to manage a downward frequency shift. Looking at the theory of SSB it seems possible to shift downwards but im not sure how.

I'm open to using other methods of frequency shifting with an arbitrary envelop but I'd like to know if it's possible with SSB.

Edit : Here by envelope i mean an arbitrary function, when the function goes high, i want my frequency shift to go high also, similarly when function goes downward, i'd like to frequency shift downward .

Vrisk
  • 103
  • 5
  • 1
    SSB (Single Side Band) modulation is a fixed frequency shift carrier modulation. It does not alter the shift in modulated frequency depending on the envelope (message) amplitude... Rather, an angle modulator (FM or PM) would do that. So your term SSB modulation and your Edit contradicts each other. – Fat32 Jan 07 '22 at 16:09
  • @Fat32 i was able to vary the frequency of SSB to produce an FM like effect. I'd like to do some angle modulation or something of the kind but I don't think I can shift an arbitrary signal (ie carrier being an arbitrary signal ) using PM/FM. Do you have any suggestions on how i'd go about this ? – Vrisk Jan 07 '22 at 16:46

1 Answers1

1

The approach to frequency shift a signal is best described with complex signals (the easiest way I find to explain SSB as well). We can frequency translate a real waveform x(t) by converting it to an analytic signal with a Hilbert Transform (which for narrow band signals simply means using a quadrature splitter), and then multiplying this resulting complex signal (represented by two real signals) with a complex rotating phasor (which we can implement with two quadrature signals, one as the sine and one as the cosine for the frequency offset we desire):

$$y(t) = x_a(t) e^{j\omega_s t} \label{1} \tag{1}$$

Where $x_a(t)$ is the analytic signal for some real waveform $x(t)$. The analytic signal is found with the Hilbert Transform as:

$$x_a(t) = x(t) + j\mathscr{H}\{x(t)\}$$

The Fourier Transform of $\ref{1}$ the above is:

$$Y(\omega) = X(\omega + \omega_s)$$

Which is basically saying a rotating phasor in time is a translated impulse in frequency. A single tone in time is a single impulse in frequency, so if we time multiply it by a rotating phasor (which is a linearly increasing or decreasing phase), we translate that tone in frequency. (Quite simple!! You have a spinning bike wheel, and you spin it faster!)

The long way to explain this is with sines and cosines but shows the implementation as given by Euler's relationship between complex exponentials and sinusoids:

$$e^{j\omega t} = \cos(\omega t)+ j\sin(\omega t)$$

If you multiply that out into the expression above, you'll see it matches an implementation where we use two real signals to represent the complex datapath: taking the real of $y(t)$ results in a real frequency translated signal. For example:

$$x(t) = \cos(\omega_1 t)$$ $$x_a(t) = \cos(\omega_1 t)+ j\mathscr{H}\{\cos(\omega_1 t)\} = \cos(\omega_1 t) + j\sin(\omega_1 t) = e^{j\omega_1 t}$$ $$y(t) =x_a(t)e^{j\omega_s t} = e^{j\omega_1 t}e^{j\omega_s t} = e^{j(\omega_1+\omega_s) t}$$

$$ = \cos((\omega_1+\omega_s) t) + j\sin((\omega_1+\omega_s) t)$$

$$ \mathscr{R}\{y(t)\} = \cos((\omega_1+\omega_s) t) $$

I explain this in more detail at this post.

Here is an additional example doing it for shifting the frequency downward and the "long way" using cosine and sine product formulas:

$$x(t) = \cos(\omega_1 t)$$ $$x_a(t) = \cos(\omega_1 t) + j\sin(\omega_1 t)$$ $$y(t) = x_a(t) \bigg(\cos(\omega_{\Delta} t) - j\sin(\omega_{\Delta} t)\bigg)$$ $$ = \bigg(\cos(\omega_1 t) + j\sin(\omega_1 t)\bigg)\bigg(\cos(\omega_{\Delta} t) - j\sin(\omega_{\Delta} t)\bigg)$$

$$ \mathscr{R}\{ y(t) \} = \cos(\omega_1 t)\cos(\omega_{\Delta} t) + \sin(\omega_1 t)\sin(\omega_{\Delta} t)$$

$$ = \frac{1}{2}\cos((\omega_1+\omega_{\Delta}) t)) + \frac{1}{2}\cos((\omega_1- \omega_{\Delta}) t)) + \frac{1}{2}\cos((\omega_1-\omega_{\Delta}) t)) - \frac{1}{2}\cos((\omega_1+ \omega_{\Delta}) t))$$

$$= \cos((\omega_1- \omega_{\Delta}) t))$$

Relationship to FM and PM:

Note that in the process above when we multiply an arbitrary carrier with magnitude and phase described as $x(t) = A(t)e^{j \omega_c(t)}$ by $e^{j\theta(t)}$ we are performing phase modulation where $\theta(t)$ is the phase of the modulation versus time.

$y(t) = A(t)e^{j \omega_c}e^{j\theta(t)} = A(t) e^{j (\omega_c + \theta(t))}$

Frequency is the time derivative of phase, so if we wish to describe this with an FM function $f(t)$ where $f(t)$ is the instantaneous frequency versus time in Hz, we use the following conversion between the two:

$$\theta(t) = 2\pi\int f(t)dt$$

So the same $y(t)$ waveform above would be produced by an FM waveform $f(t)$ and given as:

$y(t) = A(t)e^{j \omega_c}e^{j\theta(t)} = A(t) e^{j (\omega_c + (2\pi\int f(t)dt))}$

The above gets quite complicated, resulting in the use of Bessel functions to produce non-linear side-bands, but to bring this back to the OP's question of a case where the frequency increases if we raise a function's value and a frequency decreases if we lower a function's value, consider the case of a static frequency offset using FM: in this case $f(t)$ (which is the function the OP refers to) is a simple constant. The phase as the integral is a simple ramp and we see that this can be accomplished by multiplying our waveform with a phasor of linearly increasing phase (to shift a frequency up) or linearly decreasing phase (to shift the frequency down), consistent with the first explanations given above and as given specifically in equation \ref{1}.

Dan Boschen
  • 50,942
  • 2
  • 57
  • 135
  • If i understood correctly for a downward shift, I'd need to multiply by e^-jwt and working through the math in the end i get s(t) cos(t) - H(s(t)) sin(t). This just seems give me the lower side band. It looks like when the frequencies are centered at 0 it just goes backward the other way and i get lsb – Vrisk Jan 08 '22 at 07:43
  • I think you forgot the j. but to be clear it would be s(t)(cos(omega t)-j(sin(omega t)) and then you can take the real part of this product, and s(t) is the analytic signal of your input waveform x(t). So if x(t) was cos(w1 t) for example, then s(t) is cos(w1 t)+j sin(w1 t). – Dan Boschen Jan 08 '22 at 14:16
  • @Vrisk I added the complete example for a downward shift computing it "the long way" using cosine and sine product rules. I highly recommend getting used to exponentials as it makes this all more intuitive and simplifies the math, as this example shows. – Dan Boschen Jan 08 '22 at 15:27
  • Okay I get you, the downward frequency shift works in software too. But what's with this - https://en.wikipedia.org/wiki/Single-sideband_modulation.

    I'm having the same formula for downward frequency shift and upward frequency shift with lower sideband ?

    – Vrisk Jan 09 '22 at 18:12
  • My answer currently covers single-sideband modulation - Can you expand your question (in your question area not here since it is discouraged to use comments for back and forth discussion) to include your formulas and what your question is specifically? – Dan Boschen Jan 09 '22 at 18:16