Python Model an FPGA FM Radio Demodulator in Python

Click For Summary
The discussion revolves around modeling an FPGA FM radio demodulator in Python, specifically focusing on the process of undersampling and resampling an FM signal. The user is attempting to convert an FM channel to a 36MHz intermediate frequency (IF) and then undersample this signal. They have a high sample rate of 3MSPs for an FM signal centered at 1.2MHz with a bandwidth of 200KHz and are trying to resample it down to 525KSPs. The user expresses confidence in their understanding of undersampling but struggles with resampling, as the output at baseband appears incorrect. They question whether the effects of undersampling can be achieved through resampling in the digital domain, noting that they believe these processes are fundamentally different. The discussion highlights the complexities of digital signal processing and the challenges faced when attempting to replicate undersampling effects through resampling techniques.
Jyan
Messages
36
Reaction score
2
I am trying to model an FPGA FM radio demodulator in Python. I will have a mixer that converts an FM channel to 36MHz IF, and I plan on undersampling this IF signal. If in the digital world (my Python model), I have a high sample rate FM signal at 1.2MHz, should I be able to resample to a lower sample rate (after using a BPF ofc) and obtain the same aliasing down to baseband?

My understanding is that this should be possible, it just doesn't seem to be working. I am confident I understand undersampling 100%, but am not so sure about resampling... When I resample the FM modulated signal I get complete garbage at the baseband. My high sample rate is 3MSPs, the FM signal is sitting with 200KHz bandwidth and a centre at 1.2MHz. I am resampling to 525KSPs, if this were undersampling then the FM signal would be sitting in the 5th nyquist zone. But does it work the same digitally?
 
Technology news on Phys.org
Thanks for the post! Sorry you aren't generating responses at the moment. Do you have any further information, come to any new conclusions or is it possible to reword the post?
 
I can add some more details. For now I have kind of sidestepped the problem.

The essential question is whether the effects of undersampling, (see: https://en.wikipedia.org/wiki/Undersampling) can be replicated in the discrete time domain via resampling (see: https://en.wikipedia.org/wiki/Decimation_(signal_processing) , https://en.wikipedia.org/wiki/Upsampling). Currently, I think it is actually not possible, resampling and undersampling are fundamentally different, but I'm not certain. I am by no means an expert in digital signal processing.
 
Learn If you want to write code for Python Machine learning, AI Statistics/data analysis Scientific research Web application servers Some microcontrollers JavaScript/Node JS/TypeScript Web sites Web application servers C# Games (Unity) Consumer applications (Windows) Business applications C++ Games (Unreal Engine) Operating systems, device drivers Microcontrollers/embedded systems Consumer applications (Linux) Some more tips: Do not learn C++ (or any other dialect of C) as a...

Similar threads

Replies
74
Views
10K
Replies
7
Views
4K
  • · Replies 4 ·
Replies
4
Views
2K
  • · Replies 4 ·
Replies
4
Views
5K
  • · Replies 1 ·
Replies
1
Views
10K
  • · Replies 1 ·
Replies
1
Views
6K
  • · Replies 6 ·
Replies
6
Views
7K
  • · Replies 6 ·
Replies
6
Views
3K
  • · Replies 2 ·
Replies
2
Views
2K