# Computation of the bandwidth of a spectrum in wavelength domain

4 views (last 30 days)
Ikechi Ndamati on 3 Aug 2021
Commented: Ikechi Ndamati on 6 Aug 2021
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?
clear
filename1 = 'Ab.txt';
filename2 = 'lambda_axis.txt';
Ab = importdata(filename1);
lambda = importdata(filename2);
lambda_range = (lambda>1100e-12 & lambda<2000e-12);
plot(lambda(lambda_range),Ab(lambda_range));
xlim ([1.2e-9 1.9e-9]);
bw = obw(Ab,lambda);
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.

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
plot(lamnew,Anew)
bw1 = obw(Anew,lamnew)
% bw1 = 4.2769e-10
Ikechi Ndamati on 6 Aug 2021
Hello David, that's smart.
Thanks for the insight. I will apply this tactics in future problems.