S-parameters peaks and bandwidth

조회 수: 21 (최근 30일)
mikeeee
mikeeee 2019년 12월 30일
답변: Deepak Kumar 2020년 1월 9일
Hey guys
I have a S-parameter touchstone file with such a characteristic:
I want to use findpeaks function for determination of the width and central frequency of each peak, but I get an error.
  댓글 수: 2
Deepak Kumar
Deepak Kumar 2020년 1월 2일
What is the error you are getting ? can you share the data ?
You can refer the below documentation link to know more about "findpeaks" function
mikeeee
mikeeee 2020년 1월 8일
Dear Deepak,
I have attached the data-file. The error that I get is:
Attempt to execute SCRIPT findpeaks as a function:
C:\Users\.....\findpeaks.m
Error in findpeaks_sparam (line 3)
peaks = findpeaks(S_ML,freq_sim)
Code is:
S_ML = sparameters('file.s2p');
freq_sim = S_ML.Frequencies;
peaks = findpeaks(S_ML,freq_sim

댓글을 달려면 로그인하십시오.

채택된 답변

Deepak Kumar
Deepak Kumar 2020년 1월 9일
Couple of points that I noticed in your code:
S_ML is S-parameter object
>> S_ML
S_ML =
sparameters: S-parameters object
NumPorts: 2
Frequencies: [10000×1 double]
Parameters: [2×2×10000 double]
Impedance: 50
rfparam(obj,i,j) returns S-parameter Sij
The input data to “findpeaks” function must be a vector,real and of the type ‘single’ or ‘double’. So, you cannot give S_ML directly as input to the “findpeaks” functions as the S_ML is neither ‘single’ nor ‘double’.
Refer the below documentation for details:
You can extract the parameter values like below
>>x= S_ML. Parameters;
But I noticed that, x= S_ML. Parameters, is of the size and it has complex values. Since 'x' is not a vector rather 3-D data (It’s because it is representing all the S parameters for (S11,S12,S21,S22) for a two port network and 10000 is the number of frequency values at which the S-Parameters are calculated).
Please refer the below documentation for more details:
you can try to extract the individual S values, something like below
>>k1=x(1,1,:) %for S11
and, reshape it to make it a vector
>> k1=reshape(k1,10000,1)
Then, take only the magnitude values,
>>k1=abs(k1);
Now, you will be able to use “findpeaks” function.
Hope this helps!

추가 답변 (1개)

Deepak Kumar
Deepak Kumar 2020년 1월 8일
Can you try to rename your script file (findpeaks.m) and check if it resolves your issue ?

카테고리

Help CenterFile Exchange에서 Descriptive Statistics에 대해 자세히 알아보기

제품


릴리스

R2019b

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by