Skip to main content

Timeline for FSK demodulation using DSP

Current License: CC BY-SA 4.0

21 events
when toggle format what by license comment
May 28, 2021 at 2:56 comment added Dan Boschen @robertbristow-johnson the likes are pouring in now, it must be your suggestion!
May 27, 2021 at 14:41 history edited Dan Boschen CC BY-SA 4.0
added 394 characters in body
May 27, 2021 at 12:28 comment added Dan Boschen @robertbristow-johnson updated and better now assuming I did all the math right
May 27, 2021 at 12:28 history edited Dan Boschen CC BY-SA 4.0
added 1 character in body
May 27, 2021 at 3:36 comment added Dan Boschen @robertbristow-johnson I see your concern- to be clear the delay is set to nominally center at the zero crossing and then from that center position (in all practical terms especially for this question or FSK demod) you get an output reasonably proportional to frequency. But I do see your point; many implementations would not care but could mislead or miss that important point when someone does care. Maybe to avoid all confusion I’ll add the graphic showing the case where you hard-limit the input and truly get a linear result with output proportional to frequency over that range. Thk for the FB
May 27, 2021 at 3:23 comment added robert bristow-johnson well, i just think that "Output proportional to Freq of input" is not accurate at the point where it is shown. Even with linearization (where the \$\phi=0\$ crossing is) should say something about the slope and offset. But it's not "proportional" at that LPF output unless you put in the correct offset.
May 27, 2021 at 2:42 comment added Dan Boschen @robertbristow-johnson in many cases that I would use we would use this in a loop which would operate at or near the zero crossing once converged where it is highly linear. Certainly doe FSK demod the cosine shape is of minimal consequence. For analog FM this would be a consideration however where linearity may be important. The trick (with analog implementations) is to just overdrive the mixer which results in a triangular output (just as in using an XOR gate). For digital implementation yes if resources allow you can certainly inverse cosine or use full IQ with atan2.
May 27, 2021 at 2:35 comment added robert bristow-johnson Dan, since $\phi$ is proportional to $\omega$ (the delay is the constant of proportionality), shouldn't you $\operatorname{arccos}(\cdot)$ the output of the LPF to get something proportional to the frequency?
Oct 11, 2017 at 11:36 vote accept Daniel
Mar 29, 2017 at 14:14 comment added Daniel Thank you Dan Boschen, and sorry for the delayed answer. I confess that I'm trying perform a zero cross detection to count cicles, I know it is not a good approach, but, I'm doing modifications to minimize noise effect. I will try a bit more and tell you later what I did and the results.
Mar 24, 2017 at 11:14 comment added Dan Boschen I also note in your plot that there is an incidental AM that could be interfering with your process, you may benefit by "hard-limiting" (in the analog or digital) your signal prior to demod.
Mar 24, 2017 at 11:09 comment added Dan Boschen Where T is your symbol duration. So you need to be careful in aligning the time between the resulting sample edge and the delayed signal to be at or near the peaks described to also minimize error rate. This solution will allow for small frequency offsets similar to what I gave in the answer (non coherent detection). But also very simple. Your "sampler" perhaps is your interrupt driven zero crossing detector and the 100 us delay could also be done digitally. I am also assuming here that your actual data pulse duration is significantly longer than 100 us. (Is it?)
Mar 23, 2017 at 18:59 comment added Dan Boschen And here is another option if you wanted to get really clever: noting that sampling is mixing if you could square up your signal and use it as your sampling clock, and with that sample a 100 us delayed version of the same signal, this would also result in the FSK demodulator as I described in the answer (100 us is the delay that would provide 180 degree phase shift between the two signals when sampled: The 120 KHz would get sampled at the positive peaks and the 140 KHz samples would get sampled at the negative peaks. Filtering over T will average these results to minimize your error rate.
Mar 23, 2017 at 18:32 comment added Dan Boschen Another thought given what you showed you are able to do: Sample the signal at 120KHz which will have two results depending on what was transmitted: If 120 KHz was transmitted you will see a very low frequency beat note, or perhaps an arbitrary DC offset if you happen to be exactly on. If 140 KHz was transmitted, you will see a 20 KHz signal. You should be able to easily distinquish within these two cases within the length of one symbol. That part is important too as you will need to retime (timing recovery) so that you can maintain best estimates.
Mar 23, 2017 at 18:23 comment added Dan Boschen @Daniel Would you be willing to do anything in the analog if it could be simple?
Mar 23, 2017 at 18:07 comment added Dan Boschen Yes the XOR in this fashion is completely analog and if you do not have a digital multiplier we are also challenged. Thinking....
Mar 23, 2017 at 18:04 comment added Daniel Thank you very much Dan Boschen! I liked very much your explanation. But, I still do not know how to perform this delay and multiply. I do not have a multiplier (mixer) in my DSP and about the XOR operation, I can perform it only logically. I updated my question here in the forum with images that maybe can clarify my problem. I can not modify the antenna circuitry, only the connection of the circuit with the DSPic, for example, I can use another peripheral instead the comparator, an OPAMP, ADC, etc..
Mar 23, 2017 at 18:00 history edited Marcus Müller CC BY-SA 3.0
TeXified (\$ in place of $)
Mar 20, 2017 at 23:48 history edited Dan Boschen CC BY-SA 3.0
added 1891 characters in body
Mar 20, 2017 at 23:35 review First posts
Mar 21, 2017 at 3:07
Mar 20, 2017 at 23:33 history answered Dan Boschen CC BY-SA 3.0