How to produce a noise spectrum from an rms velocity specification?

7 views (last 30 days)
Dear all,
For a dynamic model I am looking at the appropriate input to analyse the performance under the influence of floor vibrations.
The norm is an ISO VC-C floor spectrum as displayed in the image. However, I am stuck in the derivation of going from a rms velocity to a (displacement) noise signal in the time domain. Any help on how to achive this (in Matlab) would be greatly appreciated.

Answers (1)

Mathieu NOE
Mathieu NOE on 28 Feb 2024
hello
maybe this ?
here we generate 10 frequencies (sine waves) of 10 periods each
I took a simple case where the spectrum is flat , but it works too if you can give amplitude vs frequency
% "flat" amplitude spectrum sinus waves
freqs = logspace(0,2,10); % from 1 to 100 Hz , log spaced values
fs = 1000; % sampling rate (>> 100 Hz)
dt = 1/fs;
velocity_rms_amplitude = 0.78e-6; % 0.78 micro m /s
% init some arrays
t_all = [];
displ_all = [];
t_shift = 0;
for ci = 1 : numel(freqs)
f = freqs(ci);
nb_periods = 10;
t = (0:dt:nb_periods/f)' + t_shift ;
vel = velocity_rms_amplitude*cos(2*pi*f*(t-t_shift));
displ = cumtrapz(t,vel); % velocity to displacement integration
% concat all signals
t_end = t(end);
t_all = [t_all; t];
displ_all = [displ_all; displ];
t_shift = t(end) + dt;
end
plot(t_all,displ_all)

Products

Community Treasure Hunt

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

Start Hunting!