Error when taking the continuous time Fourier transform
2 views (last 30 days)
I am trying to figure out what the error is associated with taking a Fourier transform. I have a 1D vector A of 130 elements and I know the error associated with each element that is just a number. The error is a 130 element vector called std_A. From that I think I can calculate the error associated with the function that it makes up:
syms t w real
f(t) = sum(exp(-t./A))*heaviside(t);
std_ft(t) = sqrt(sum((abs(t).*exp(-t.*A)*heaviside(t)+dirac(t)).*std_A).^2);
The last line is what I calculated by doing the error propagation for the nonlinear function and is approximate.
Since I think in general you need to take the Fourier transform of the error in the time domain to calculate the error in the frequency domain, I have:
std_fw(w) = fourier(std_ft(t),t,w);
The calculation is very slow I think due to the length of the vector A and also the end result is actually a function of both t and w, which I'm not sure how to work with.
Is there a better way of doing this? I feel like I am making this harder than it needs to be.
Paul on 11 Jul 2022
Using some examle data ...
A = 1:5;
std_A = 11:15;
syms t w real
f(t) = sum(exp(-t./A))*heaviside(t)
std_ft(t) = sqrt(sum((abs(t).*exp(-t.*A)*heaviside(t)+dirac(t)).*std_A).^2)
FWIW, there is no need to use abs(t) here because each is multiplied by heaviside(t).
Anyway, I doubt the signal std_ft(t) has a closed form expression for its Fourier Transform, assuming its Fourier Transform exists.
Certainly Matlab can't find one, so it just resturns an answer in terms of fourier().