urh
urh copied to clipboard
AM-FSK (AM/FSK) interpretation and generation
Hi!
I'm trying to interpret a signal that is both AM and FSK modulated. An FSK signal that is in turn amplitude modulated. Because of this URH will not demodulate the signal correctly since it is not possible to do both AM and FSK demodulation as far as I understand. I'm too inexperienced to say that this isn't possible to perform in URH today but I have no idea how to accomplish that.
Unless this feature already exist I suppose that some kind of layered demodulation/modulation functionality in URH would be required.
Being quite a novice in this field I guess that the signal otherwise could be AM-demodulated in some other software and then fed into URH. Being that I also would like to generate signals as well that feels quite cumbersome however.
Any feedback regarding this would be greatly appreciated. Thanks!
Hi!
ASK+FSK is rather unusual. Are you sure you don't mean QAM (ASK+PSK)? At the moment URH, however, only supports n-{ASK/PSK/FSK} signals but not a combination of those. Supporting modulation combinations, like QAM, comes with illustration and configuration problems where we need a good solution at first, e.g. how to plot the demodulated signal, which value comes first: ASK or PSK?, ... We always have in mind to not destroy the user experience.
Dear community, how many of you are dealing with modulation combinations? Do you have ideas for solving illustration and configuration (without destroying the UX for people that do not need this)?
Hello again!
Thank you for your answer. "Unfortunately" it's not QAM support I'm looking for, but "AM-FSK". Although it might not be that common nowadays it's a double modulation technique used to transmit FSK signals over simple (AM) radio transmitters such as a walkie talkie or similar transmitter, thus enabling low-speed digital communication. (For some reason double modulation techniques seems to be quite common within space-based communication as well, but that's not my area of interest.)
Since URH can handle these modulation techniques separately it feels like it could be implemented quite easily - in theory at least. ASK demodulation in URH gives a beautiful (raw) FSK signal but that signal can't be demodulated any further to extract the digital information, however.
One suggestion might be to implement a new Option tab next to "Plugins", "Device" etc. Similar to how different devices can be enabled and disabled, maybe different combinations of demodulation/modulation combinations could be enabled/disabled? Double modulations would of course show up in the reversed order within the Generator (modulation) tab. I suppose that this kind of solution would require intermediate signal processing in the background when enabling double de-/modulation though.
By default everything but ASK/FSK/PSK would be disabled, thus not cluttering the Modulation dropdown menu within the Interpretation tab for users not requiring that functionality. But that's just my two cents. I might of course have missed some additional problems that needs to solved as well.
Hey, we discussed this issue internally and came to the conclusion that layered modulation and demodulation would be to much effort for such a special use case. Hardcoding AM-FSK, however, should not be a big deal! We encourage you to fork the project and modify (at least):
- urh.signalprocessing.Modulator
- urh.cythonext.signal_functions.modulate_c
- urh.cythonext.signal_functions.afp_demod
accordingly. From our perspective this would be the best solution because this doesn't impact the "standard" user. If you have questions or need support, don't hesitate to contact us. We recommend our slack channel for discussing detailed implementation questions.