Fourier transform of impulse function

35 visualizaciones (últimos 30 días)
friet
friet el 28 de Feb. de 2017
Comentada: Hira Asghar el 25 de Feb. de 2018
I calculated the Fourier transform of a pulse function(figure 1) Using the fft function. However The fft result if kind of weird. Can anyone check if my code is right. //Thanks
clc
clear all
close all
t1=7.0e-08;
sigma=1e-08;
t=linspace(0,4.0000e-7,1000);
P=exp(-(t-t1).^2./sigma.^2);
P_FT=fft(P); %fourier transform of P
figure(1)
plot(t*10^6,P);
grid on
xlabel('time[\mus]')
ylabel('amplitude[a.u]')
figure(2)
plot(P_FT);
grid on

Respuesta aceptada

Star Strider
Star Strider el 28 de Feb. de 2017
Editada: Star Strider el 28 de Feb. de 2017
The Fourier transform of an impulse function is uniformly 1 over all frequencies from -Inf to +Inf. You did not calculate an impulse function.
You calculated some sort of exponential function that will appear as an exponential function in the Fourier transform.
Your slightly modified code:
t1=7.0e-08;
sigma=1e-08;
L = 1000;
t=linspace(0,4.0000e-7,L);
Ts = mean(diff(t));
Fs = 1/Ts;
Fn = Fs/2;
P=exp(-(t-t1).^2./sigma.^2);
P_FT=fft(P)/L; %fourier transform of P
Fv = linspace(0, 1, fix(L/2)+1)*Fn; % Frequency Vector
Iv = 1:length(Fv); % Index Vector
figure(1)
plot(t*1E+6, P);
grid on
xlabel('time[\mus]')
ylabel('amplitude[a.u]')
figure(2)
plot(Fv, abs(P_FT(Iv))*2);
grid on
The correct representation of the Fourier transform of your signal is in figure(2).
  2 comentarios
friet
friet el 28 de Feb. de 2017
Editada: friet el 28 de Feb. de 2017
Hi Star Strider! Thanks for your answer. I understand it now. I have further question. I have a function which is frequency and space dependent and I post my question a week ago here https://www.mathworks.com/matlabcentral/answers/326466-fourier-transform-space-dependent-function however, didnt get any answer. With your help today I get closer to solve my problem however, can't makes it to the final answer. Can u please help me to compute the space and frequency dependent function. I have tried the following code.
clc
clear all
close all
t1=7.0e-08;
sigma=1e-08;
L = 1000;
t=linspace(0,4.0000e-7,L);
Ts = mean(diff(t));
Fs = 1/Ts;
Fn = Fs/2;
P=exp(-(t-t1).^2./sigma.^2);
P_FT=fft(P)/L; %fourier transform of P
Fv = linspace(0, 1, fix(L/2)+1)*Fn; % Frequency Vector
Iv = 1:length(Fv); % Index Vector
figure(1)
plot(Fv, abs(P_FT(Iv))*2);
grid on
xlabel('f[Hz]')
ylabel('amplitude[a.u]')
%................................................
z=linspace(0,2*10^-3,1000); %[m]
v=2000;
alpha= 5; %[Neper/cm]
beta=(2*pi*Fv/v); %[Hz]
figure(3)
plot(Fv*10^-6,beta*0.01)
xlabel('f[MHz]')
ylabel('alpha[N/cm]')
pfz=zeros(length(z),length(Fv));
pft=zeros(length(z),length(Fv));
for j_f=1:length(Fv)
for i_z=length(z)
pfz(i_z,j_f)=P_FT(j_f).*exp(-alpha.*z(i_z)).*exp(1i.*beta(j_f).*z(i_z));
end
end
for i=length(z)
pft(i,:)=ifft(pfz(i,:));
end
figure(4)
plot(z,abs(pft))
Star Strider
Star Strider el 28 de Feb. de 2017
I answered you in the email you sent. The essence of that being that you can use Laplace transforms to solve partial differential equations in time-domain and space-domain by converting them to ordinary differential equations in s-domain and space-domain. That is relatively straightforward with Laplace transforms but much more difficult with Fourier transforms, since they can involve complex frequency variables. Those are much more difficult to work with.
I do not understand the problem you want to solve.

Iniciar sesión para comentar.

Más respuestas (1)

Walter Roberson
Walter Roberson el 28 de Feb. de 2017
plot() with one argument that is complex-valued (hint!) plots real() of the parameter against imag() of the parameter.

Categorías

Más información sobre Fourier Analysis and Filtering en Help Center y File Exchange.

Etiquetas

Community Treasure Hunt

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

Start Hunting!

Translated by