psd2time function doesn't work

10 views (last 30 days)
Federico Paolucci
Federico Paolucci on 5 Jul 2022
Hi, I'm trying to obtain a random time history from a rectangular PSd through the function "psd2time". after running the script, command window gives me the error "invalid input argument" refered to psd2time. Which are the right arguments?
this is the script that I'm using (you can fund psd2time and its arguments in the last lines)
P.S. I've installed wafo toolbox
SCRIPT
addpath('.\Funzioni')
clc
clear all
close all
% per vedere come il segnale stradale viene filtrato dagli pneumatici
%%
% DEFINIZIONE PROFILO STRADALE NELLO SPAZIO
%parametri della strada
%parte DX,ruota-cordolo
Xmax=7.5/100; %la buca più profonda [m] -- 1 cm (pista di YAS MARINA)
Sx=Xmax/4; %ricavo la sigma=RMS [m]
mu = 0; %media
RMSx=Sx; %deviazione standard
%parametri simulazione
%considero i cordoli piramidali
L=50; %lunghezza strada [m], si ipotizza di percorrere 50 metri di cordolo
v=25; %velocità con cui la attraversiamo [m/s] (FEDERICO)
%_m sta a significare che si parla di frequenza spaziale e non temporale
lam_max_m=10; %lunghezza d'onda massima [m] RANGE DI DEFINIZIONE DELLA PSD **
%lam_min_m=0.1; %lunghezza d'onda minima [m] **
lam_min_m=0.1
%cicli al metro
Fmax_m=4*(1/lam_min_m); %frequenza d'onda massima osservabile [1/m] Nyquist
Fcamp_m=Fmax_m*2; % TH NYQUIST
Finf_m=1/lam_max_m;
Fsup_m=1/lam_min_m;
%%
%PSD del profilo cordolo (DX)
% SPAZIO
df_m=1/Fcamp_m; %risoluzione in frequenza [1/m] (arbitraria)
freq_m=[df_m:df_m:Fmax_m]'; %VETTORE FREQUENZA
PSD_DX_m=zeros(length(freq_m),1); %inizializzo il vettore PSD spaziale dx
imin=round(Finf_m/df_m); % creo un indice
imax=round(Fsup_m/df_m);
Area = Sx^2;
PSD_DX_m(imin:imax)=((Sx^2)/(freq_m(imax)-freq_m(imin))); % area / base = altezza
std_dx_m=sqrt(trapz(freq_m,PSD_DX_m)) % verifica
figure(1)
plot(freq_m,PSD_DX_m,'Linewidth',2)
xlabel('frequenza_s_p_a_z_i_a_l_e [1/m]')
ylabel('PSD_s_p_a_z_i_a_l_e [m^2/(1/m)]')
hold on
grid on
str=['PSD profilo cordolo (DX) nello spazio - RMS = ',num2str(std_dx_m)];
title(str)
% genero il segnale del cordolo nello spazio
dx=1/Fcamp_m; %spazio di campionamento [m]
stradaDX=psd2time(PSD_DX_m,freq_m,L,dx); %cordolo
rmst_dx=std(stradaDX(:,2))
figure(2)
plot(stradaDX(:,1),stradaDX(:,2));
xlabel('Lunghezza strada [m]')
ylabel('Profilo stradale destro [m]') %cordolo
title('Profilo stradale (destro) nello spazio ')
grid on

Answers (0)

Products


Release

R2022a

Community Treasure Hunt

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

Start Hunting!