# Overlap integral of the electric field distribution

89 views (last 30 days)
shdotcom shdotcom on 19 May 2017
Commented: Torsten on 22 May 2017
Hi, I am trying to calculate overlap integral (OI) of electric field distribution, using Matlab, when run the following code:
xc = linspace(0,1,M);
yc = linspace(0,1,M);
A = E1 * E2;
B = (abs(trapz(xc,trapz(yc, abs(A))) ) ).^2;
C = trapz(xc,trapz(yc, abs(E1).^2)) * trapz(xc,trapz(yc, abs(E2).^2 ));
OI = B./C;
where E1 is the electric field distribution of the desired mode and E2 is polarized mode. Both E1 and E2 are matrices of size MxM.
but, I have got this error: Error using trapz (line 57) *LENGTH(X) must equal the length of Y in dim 1. David Goodmanson on 19 May 2017
Hi shdot, in the equation for B, I believe the 'abs' is in the wrong place. You should integrate first, take abs afterwards. Same in Torsten's code which he inherited and modified.
shdotcom shdotcom on 20 May 2017
You are right, I have edited the code.

Torsten on 19 May 2017
Edited: Torsten on 19 May 2017
xc = linspace(0,1,M);
yc = linspace(0,1,M);
A = E1 .* E2;
B = (trapz(xc,trapz(yc, abs(A), 1)) ).^2;
C = trapz(xc,trapz(yc, abs(E1).^2, 1)) * trapz(xc,trapz(yc, abs(E2).^2, 1 ));
OI = B./C;
Best wishes
Torsten.

shdotcom shdotcom on 20 May 2017
I have edited the code based on @David Goodmanson's comments. Could you please explain to me why you used 1 instead on 2 in the trapz()
C = trapz(xc,trapz(yc, abs(E1).^2, 1)) * trapz(xc,trapz(yc, abs(E2).^2, 1 ));
Torsten on 22 May 2017
xc = linspace(0,1,M);
yc = linspace(0,1,M);
A = E1 .* E2;
B = (trapz(xc,trapz(yc, A, 1)) )^2;
C = trapz(xc,trapz(yc, abs(E1).^2, 1)) * trapz(xc,trapz(yc, abs(E2).^2, 1 ));
OI = B./C;
I used 1 instead of 2 in trapz() because you have to integrate each column of A if you integrate over y.
Best wishes
Torsten.