I am trying to create a form of FSCM (frequency shift chirp modulation) based on LoRa principle just to learn from it and to obtain a deeper understanding.
What I do not get: why is (or must be?) the bandwidth equal to the chip rate.
If my spreading factor is 7, I have 2^7 = 128 chips in one symbol. One symbol represents a number with value 0-127 in that case. Fine.
Now, I would want to create a symbol by creating a sine wave.
- I setup a sine wave that starts at the selected chip value's matching frequency
- every t time I increase the frequency
- when the upper found (f_high) is achieved I set the frequency to f_low
- I stop when the chip's value matching frequency is reached
I am trying to find out, what should be the value of 't' and with what should I increase the frequency.
One suggestion would be: if I have a Bandwidth of 125 kHz I can change the frequency every 8 us and add 1 kHz, but the issue here would be that I cannot get 128 different frequencies using this method.
What would be a good method to tackle my problem? Somehow I cannot wrap my head around it. That, especially with relation to the question of why should the chip rate be equal to the bandwidth.
Or, if I have 128 chips in a symbol, should I only increase the frequency every iteration with a factor of 125.000 / 128 Hz ? In that case, what should be the time 't' between every iteration because it would not be 1/125000, which is the chip rate, right? I am stuck.
As you might notice my head is getting stuck and I'm not sure how to get out of it, while it might be very simple.
------------ UPDATE ----------
Thanks to the answers of jcaron I came up with two plots. A continuous increment of frequency which is shown across multiple chirp examples and one in (more explicit) phases. Now, to my understanding, the latter is true. Each frequency step directly correlates to being BW / 2^SF of value.