1

I want to generate a stepped frequency modulated waveform (SFMW), similar to a linear frequency modulated chirp. While approaching this, I wanted to consider the issue that there should be some continuity at the points where the frequency jumps, such that there are no jumps in the signal waveform like here:

Frequency step with discontinuity

In my case, I am modeling a cosine signal like so: $$ s_n(t') = cos(2\pi (f_c + n\cdot \Delta F)t') $$ where $\Delta F$ is some arbitrary but fixed frequency step size and $n=0, 1, 2, \dots, N$.

My current idea is to generate an interval of time duration $T_n$ for each frequency step, where then the time variable $t'$ is locally defined to be $0 \leq t' \leq T_n$. Then I would add a phase term $\theta_n $ to adjust the phase of the next interval: $$ s_n(t') = cos(2\pi (f_c + n\cdot \Delta F)t' + \theta_n) $$

Equating both sides

The global time variable $t$ can be computed afterwards, but I feel it is not important here. So in the following $t'=t$ to ease notation.

The idea was then, to equate two consequtive intervals at their boundaries to find the phase that needs to be added (see picture above): $$ \begin{aligned} \left.s_n(t)\right\vert_{t=T_n} &= \left.s_{n+1}(t)\right\vert_{t=0}\\ \left.cos(2\pi (f_c + n\cdot \Delta F)t + \theta_n)\right\vert_{t=T_n} &= \left.cos(2\pi (f_c + (n+1)\cdot \Delta F)t + \theta_{n+1})\right\vert_{t=0} \end{aligned} $$ which (I think) can be written as:

$$ \begin{aligned} \left.2\pi n \Delta F t + \theta_n \right\vert_{t=T_n} &= \left.2\pi (n+1) \Delta F t + \theta_{n+1} \right\vert_{t=0} \\ 2\pi n \Delta F T_n + \theta_n &= 2\pi (n+1) \Delta F \cdot 0 + \theta_{n+1} \\ \theta_{n+1} &= 2\pi n \Delta F T_n + \theta_n \\ \end{aligned} $$

Starting with a phase of $\theta_0 = 0$, I could use this to precompute the phase shifts for all $N$ intervals. However, using this in the equation for the signal intervals $s_n$ does still give me those jumps in the signal. Maybe I am missing something or I am doing an error somewhere in the maths. Could someone give me a hint about this?

Lucas
  • 65
  • 5

0 Answers0