Plot Autocorrelation for Ultrashort Pulse
7 views (last 30 days)
Show older comments
Hi, I need to plot the autocorrelation for the gaussian pulse. I am able to plot the pulse but I don't know how to work on the autocorrelation with the integral. I am not really know how to use the integral() to make it works
Here is the autocorrelation function I need ![](https://www.mathworks.com/matlabcentral/answers/uploaded_files/1022885/image.jpeg)
![](https://www.mathworks.com/matlabcentral/answers/uploaded_files/1022885/image.jpeg)
Here is the pulse code
c = 3e+8; % Speed of light
lambda = 2000e-9; % Wavelength
freq = c/lambda; % Actual Frequency of light
T=1/freq; % period
width=100e-15; % Full width at half maximum
tstep=T/10000; % time step
t1=-100*T+tstep:tstep:100*T; % time range -100T to 100T
Egauss=exp(i*(2*pi*freq*t1)).*exp(-2*log(2)*t1.^2/width.^2); % Gaussian intensity pulse
% which different from the Gaussian amplitude modulation by a factor of 2
envelop=exp(-2*log(2)*t1.^2/width.^2); % Gaussian intensity envelope
hold on
plot(t1/(2*pi),real(Egauss),'r','linewidth',0.05)
plot(t1/(2*pi),envelop,'b','linewidth',2)
set(get(gca,'XLabel'),'FontSize',12);
set(get(gca,'YLabel'),'FontSize',12);
set(get(gca,'Yaxis'),'FontSize',12);
set(gca,'FontSize',12,'LineWidth',2);
set(get(gca,'Xaxis'),'FontSize',12);
xlabel('time (fs)')
ylabel('Intensity')
legend('Intensity','Envelope')
Here is my attempt code for the autocorrelation but it doesn't work
c = 3e+8; % Speed of light
lambda = 2000e-9; % Wavelength
freq = c/lambda; % Actual Frequency of light
T=1/freq; % period
width=100e-15; % Full width at half maximum
tstep=T/1000; % time step
t1=-100*T+tstep:tstep:100*T% time range -100T to 100T
t2=-100*T+tstep:tstep:100*T;% time range -100T to 100T
Egauss=exp(i*(2*pi*freq*t1)).*exp(-2*log(2)*t1.^2/width.^2);
Etau=exp(i*(2*pi*freq*(t1-t2))).*exp(-2*log(2)*(t1-t2).^2/width.^2);
fun = @(t1) abs((Egauss+Etau).^2).^2;
q= integral(fun,t1)
plot (t1,q)
0 Comments
Answers (1)
Moksh
on 8 Sep 2023
Edited: Moksh
on 8 Sep 2023
Hi Trang,
According to the information provided, I believe that you can generate the signal mentioned in the equation and now you want to plot the autocorrelation for it.
To plot the autocorrelation of the signal generated from the given equation, you can utilize the 'autocorr' function in MATLAB. This function calculates and generates a sample autocorrelation for the provided numerical vector.
Here is an example showing the 'autocorr' function
% Generating a random data for 1000 time samples
t = 0:1000;
x = randn(size(t));
% Plotting the original signal and it's sample autocorrelation
subplot(2, 1, 1)
plot(t, x);
subplot(2, 1, 2)
autocorr(x)
For further understanding of the ‘autocorr' function, please refer to the following document.
Hope this helps!
0 Comments
See Also
Categories
Find more on Fourier Analysis and Filtering in Help Center and File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!