Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Question about application for GHz dual-channel downconversion receiver for GHz VNA #1112

Open
gsteele13 opened this issue Nov 4, 2023 · 4 comments

Comments

@gsteele13
Copy link

Description of the setup:

  • Device: None yet
  • SD card image: None yet
  • Application: GHz VNA receiver
  • Other relevant information:

Description of the problem:

I'm looking into implementing a GHz VNA using a red pitaya as the IF digitizer / demodulator to replace the commercial GHz VNAs (eg. PNA5222A) we have in the lab.

I've been looking around and think that the SDR receiver could be a great building block for this, but then with two channels that share a common single digital IQ demodulation reference to achieve phase alignment. Here is a block diagram with my full idea:

Screenshot 2023-11-04 at 12 08 41

I'd like to stream the IQ data from the RP straight into python where I can further decimate / filter (if needed) to increase SNR (we often use a 1 Hz IFBW in our data acquisition...). We need the two channels to calibrate out the non-flatness of the generator power vs freq, and also to measure the randomized phase alignment we get on the two MW generator channels whenever a frequency is changed, along with calibrating and correcting for imperfections in the downconversion mixers.

(for RF nerds: The down conversion is vulnerable to image leakage, but that is not a problem in principle since only one frequency is coming in on their RF ports...this is also how our expensive commercial VNAs are implemented...)

I guess my question is if there is a possibility to implement this idea using the code in this repo, or maybe with some modifications?

My requirements are:

  • Two SDR receivers running from a single digital ref stream so that the IQs on both inputs are phase aligned
  • Ability to frequency lock the clock of the RP to the 10 MHz ref from my GHz generator
  • Library for getting the IQ streams into my python software

And some things that would be nice would be, on the longer term, could be:

  • More filtering / decimation of the IQ streams on the RP to reduce CPU load / complexity of my python program
  • IQ Trace acquisition on the RP started by a hardware trigger to align to a programmed frequency sweep on my generator for future applications of very fast traces

I'd be very interested to hear what you think, and can also donate my own time (limited) and perhaps also time of a university programmer to help

Thanks in advance!
Gary

@pavel-demin
Copy link
Owner

pavel-demin commented Nov 4, 2023

I think the trickiest part would be locking the frequency to the 10 MHz reference.

Why (re)start from the SDR receiver if there is already a working VNA in this repository? It already has two synchronous SDR receivers and a Python code example.

@gsteele13
Copy link
Author

gsteele13 commented Nov 4, 2023

Why (re)start from the SDR receiver if there is already a working VNA in this repository? It already has two synchronous SDR receivers and a Python code example.

Excellent question! I did not realise the current 50 MHz VNA had two receivers! That is totally 100% the place to start then. Thanks!

I think the trickiest part would be locking the frequency to the 10 MHz reference.

I guess since I will not be using the RP outputs on my VNA, I could use one of the RP outputs to output a 10 MHz reference and use the generator in external REF mode, that would probably work, I'll dig into the code as soon as I have some free time

Cheers,
Gary

@pavel-demin
Copy link
Owner

pavel-demin commented Nov 5, 2023

If you do not use the outputs, then I think that you do not need additional frequency synchronization. I think that the phase difference between IN1 and IN2 signals does not depend on the parameters of the local oscillator used for mixing inside the SDR block on your diagram.

@gsteele13
Copy link
Author

Agree, as long as only a single LO is used in the SDR block for both inputs, then we should be good! I am looking forward to building it and trying it :)

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants