Undergrad Get the time axis right in an inverse Fast Fourier Transform

Click For Summary
SUMMARY

The discussion focuses on transforming S-parameter response data from a Vector Network Analyzer (VNA) into the time domain using the Inverse Fast Fourier Transform (IFFT) in MATLAB. The user, Thomas, encountered issues with time scaling, initially miscalculating the x-axis increment as 1/bw/N_max, where bw is the bandwidth and N_max is the number of samples. The correct time step is defined as Δt = 1/(N Δf), with Δf determined to be 0.00125 GHz based on the provided data file.

PREREQUISITES
  • Understanding of S-parameters and their representation in frequency domain.
  • Familiarity with MATLAB IFFT function and its application.
  • Knowledge of time-frequency relationships in signal processing.
  • Basic concepts of bandwidth and sampling in digital signal processing.
NEXT STEPS
  • Research the MATLAB IFFT function and its parameters for optimal usage.
  • Learn about time-domain transformations of frequency domain data.
  • Explore the implications of sampling theorem in signal processing.
  • Investigate advanced techniques for S-parameter analysis using MATLAB.
USEFUL FOR

Engineers, signal processing specialists, and researchers working with vector network analyzers and time-domain signal transformations will benefit from this discussion.

Nora
Messages
2
Reaction score
0
TL;DR
time (distance) axis of Inverse Fast Fourier Transform (IFFT) from Vector Network Analyzer (VNA) S-parameter data.
Hi
I would like to transform the S-parameter responce, collected from a Vector Network Analyzer (VNA), in time domain by using the Inverse Fast Fourier Transform (IFFT) . I use MATLAB IFFT function to do this and the response looks correct, the problem is that I do not manage to the time scaling correct. The VNA has a build in time domain toolbox so I know how it should look like, see the figure below.
Return-Loss, time domain, VNA.jpg

In the figure below I have plotted the MATLAB transformed data with the index on x-axis (also zoomed in between N=0 to 20, N_max is 1600)
Return-Loss, time domain, MATLAB.jpg

At first I assumed that the increment on x-axis would be 1/bw/N_max where bw is the band width (i.e. f_max-f_min) and N_max is the number of samples. This is obviously wrong with a factor of 1e-3.
I would much appreciate if someone would like to help to get this correct! I have attached the S-matrix data in the txt file. First column is the frequency in GHz, second is real part of the response and third is imaginary part of the response.
My thanks in advance
/Thomas
 

Attachments

  • Return-Loss, time domain, VNA.jpg
    Return-Loss, time domain, VNA.jpg
    29.5 KB · Views: 256
  • data.txt
    data.txt
    50 KB · Views: 284
Mathematics news on Phys.org
The time step is given by
$$
\Delta t = \frac{1}{N \Delta f}
$$
From the data file, it appears that ##\Delta f = 0.00125\ \mathrm{GHz}## (the frequencies appear to be rounded values).
 
Hi
Thanks for the answer! Yes, this makes sense.
 

Similar threads

  • · Replies 3 ·
Replies
3
Views
2K
  • · Replies 6 ·
Replies
6
Views
2K
  • · Replies 2 ·
Replies
2
Views
1K
  • · Replies 13 ·
Replies
13
Views
3K
Replies
1
Views
2K
  • · Replies 2 ·
Replies
2
Views
1K
  • · Replies 1 ·
Replies
1
Views
2K
  • · Replies 5 ·
Replies
5
Views
3K
  • · Replies 5 ·
Replies
5
Views
2K
  • · Replies 2 ·
Replies
2
Views
2K