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!
The procedure for the correct transition between ASD and Amplitude Spectrum (AS) is the following:
This scheme works for me perfectly.