I am sorry in advance for a bit clumsy question, but I am really stucked in the simple, but not trivial problem of finding the amplitude spectrum function from the given PSD or ASD.
So, what I have initially is this ASD and PSD of the signal:
What I want at the end: is a signal in time-series domain.
I've read a lot of forum pages and I knew that ifft here should take place in order to switch from the frequency domain to the time-domain (for ex. a good algorithm was presented here: https://www.researchgate.net/post/How-do-I-generate-time-series-data-from-given-PSD-of-random-vibration-input)
The thing is that I also already have a signal in the time domain (acquired from additional software), so I can check myself whether my ifft works correct or not.
To sum up, if everything works correctly, the ASD and PSD of the output time-series signal should coincide with the input ASD and PSD:
My problem is that I can not calculate correctly the amplitude spectrum in the frequency domain U(f) in order to use it further in the ifft procedure:
Here on the graphs below the cyan curve is the U(f) as it should be and the grey curve as I have it. And hence the output ASD and PSD do not coincide with the input ones (right graph below)
Could you tell me please which kind of transformation shall I use in order to get from the input ASD (or PSD) to the correct U(f)?
Here is the equation for the initial function:
y = (1e-12 * sqrt( (1e-3./f).^4 ./ ((1e-5./f).^4+1) + 1 + (f/1e-1).^4)).^2;
acc_freq_asd = abs(sqrt(y)); %convert to ASD
acc_freq_psd = abs(y); %convert to PSD
The plotted U(f) 'grey curve' was acquired by the following formula:
U_f = sqrt(2*acc_freq_psd.*tslength);
where tslength
- is the signal length
But I've also used many more combinations (with the normalizations and etc) but none of them give the correct U(f).
Will be really appreciate for your help!