Matlab - obtención de señal ponderada en frecuencia

 
Vista:

obtención de señal ponderada en frecuencia

Publicado por Lyon_ (8 intervenciones) el 12/04/2019 22:30:13
Buenas,

Estoy intentando obtener la señal ponderada en frecuencia ywm(t) a partir de unas historias de aceleración en direccion vertical, transversal, y longitudinal.

En primer lugar debo generar H(w) mediante la definición del filtro en frecuencia wm (ISO 2631-2), con el siguiente código de matlab:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
% Definición del filtro WM
 
H=zeros(npt,1);
 
% Parámetros del filtro
w1=2*pi*(10^-.1);
w2=2*pi*100;
w3=1/0.028;
 
for ifr = 1:npt/2,
ip=(2*pi*ifr*df)*1i;
Hh= 1/(1+(2^.5)*w1/ip+(w1/ip)^2);
Hl= 1/(1+(2^.5)*ip/w2+(ip/w2)^2);
Ht= 1/(1+ip/w3);
 
H(ifr,1)=Hh*Hl*Ht;
 
% parte negativa
H(npt+1-ifr,1)= conj(H(ifr,1));
 
end

En segundo lugar debo emplear el filtro en dominio del tiempo (ISO 8041), tengo el siguiente código:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
% Definición del filtro WM
%
fl=10^-0.1;
f2=100;
w3=1/0.028;
nyq=fs/2; % Nyquist frq
[b1, a1]=butter(2,fl/nyq,'high'); % High pass
[b2, a2]=butter(2,f2/nyq); % Low pass
B3=[0 1];
A3=[1/w3 1];
[b3,a3] = bilinear(B3,A3,fs); % Pure freq.
xwm=filter(b2,a2,x); % Apply LP
xwm=filter(bl,al,xwm); % Apply HP
xwm=filter(b3,a3,xwm); % Apply PF

Otra forma en un paso:
1
2
3
4
bbb=conv(conv(b1,b2),b3);
aaa=conv(conv(a1,a2),a3);
xwm=filter(bbb,aaa,x); % Apply filter
freqz(bbb,aaa,round(npt/2),fs) % filter plot

De estos dos procedimientos debo representar el módulo y la fase. y de ahí hallar la señal ponderada ywm(t)
historia aceleración
1
2
3
4
y(t)->FFt->y(w)
wm->H(w)
 
H(w) y(w) = ywm(w) ->iFFT -> ywm(t)

Ayudaa por favor
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder