version where the signal is flipped and added together

This commit is contained in:
Silas Oettinghaus
2023-07-10 15:08:25 +02:00
parent 93dd63bb18
commit 3c11e4b2e5
10 changed files with 778 additions and 421 deletions

View File

@@ -61,10 +61,10 @@ classdef EML
end
function signalclass_out = process(obj,signalclass_in)
function [signalclass_out,obj] = process(obj,signalclass_in)
% actual processing of the signal (steps 1. - 3.)
signalclass_in.signal = obj.process_(signalclass_in.signal);
[signalclass_in.signal,obj] = obj.process_(signalclass_in.signal);
% cast the inform. signal to electrical signal
signalclass_in = Opticalsignal(signalclass_in,"fs",obj.fsimu,"logbook",signalclass_in.logbook,"lambda",obj.lambda*1e-9,"nase",0);
@@ -92,7 +92,7 @@ classdef EML
ph_noi = obj.createPhaseNoise;
laserfield = obj.field.*exp(1i*ph_noi);
%remember phase (! you need to receive the altered eml object in you sim program !)
obj.phase = ph_noi(end);
obj.phase = ph_noi;
else
laserfield = obj.field;
end
@@ -106,13 +106,18 @@ classdef EML
function noi = createPhaseNoise(obj)
%create random vector
noi = randn(obj.signal_len,1);
noi = randn(obj.signal_len/2,1);
%scale with noisefactor
noi = noi * obj.noisefactor;
%cumsum to accumulate noise over time vector
noi = cumsum(noi);
%add phase from previous block/ loop of simulation
noi = noi + obj.phase;
noi = [noi ; flip(noi)];
end
function modulated_laserfield = externalmodulation(obj,laserfield,electrical_in)