MATLAB Answers

Computation of the bandwidth of a spectrum in wavelength domain

5 views (last 30 days)
I have a spectrum that is plotted in the wavelength domain, and I need to find the bandwidth of the spectrum. I can't share the full code else, it will be overwhelming, so I saved the vectors. The bandwidth that the obw() function gives is innacurate. Please how can I find the correct bandwidth?
filename1 = 'Ab.txt';
filename2 = 'lambda_axis.txt';
Ab = importdata(filename1);
lambda = importdata(filename2);
lambda_range = (lambda>1100e-12 & lambda<2000e-12);
xlim ([1.2e-9 1.9e-9]);
bw = obw(Ab,lambda);
Ikechi Ndamati
Ikechi Ndamati on 4 Aug 2021
@David Goodmanson I do not expect a 100% accuracy. However, the current bandwidt values are not even remotely close to a reasonable value. I need to know why my implementation gives unreasonable values so that I can try to solve the issue.

Sign in to comment.

Accepted Answer

David Goodmanson
David Goodmanson on 4 Aug 2021
Edited: David Goodmanson on 4 Aug 2021
Hi Ikechi,
the problem is basically that there are not enouch points to work with.
lambda = lambdaaxis;
lambda_range = (lambda>1100e-12 & lambda<2000e-12);
lam1 = lambda(lambda_range);
A1 = Ab(lambda_range);
bw = obw(A1,lam1)
% bw = -8.8591e-10
% add a lot of interpolated points
a = min(lam1);
b = max(lam1);
lamnew = linspace(a,b,10000);
Anew = interp1(lam1,A1,lamnew);
figure(1); grid on
bw1 = obw(Anew,lamnew)
% bw1 = 4.2769e-10
Ikechi Ndamati
Ikechi Ndamati on 6 Aug 2021
Hello David, that's smart.
Thanks for the insight. I will apply this tactics in future problems.

Sign in to comment.

More Answers (0)

Community Treasure Hunt

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

Start Hunting!

Translated by