S-parameters peaks and bandwidth
15 views (last 30 days)
Show older comments
Hey guys
I have a S-parameter touchstone file with such a characteristic:
![](https://www.mathworks.com/matlabcentral/answers/uploaded_files/257648/image.png)
I want to use findpeaks function for determination of the width and central frequency of each peak, but I get an error.
2 Comments
Deepak Kumar
on 2 Jan 2020
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
Accepted Answer
Deepak Kumar
on 9 Jan 2020
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).
![](https://www.mathworks.com/matlabcentral/answers/uploaded_files/260847/image.png)
![](https://www.mathworks.com/matlabcentral/answers/uploaded_files/260848/image.png)
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!
0 Comments
More Answers (1)
Deepak Kumar
on 8 Jan 2020
Can you try to rename your script file (findpeaks.m) and check if it resolves your issue ?
See Also
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!