0% found this document useful (0 votes)
296 views

Matlab Scripts For Hilbert Transform

Transformada de Hilbert - Matlab

Uploaded by

Marcos Manzano
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
296 views

Matlab Scripts For Hilbert Transform

Transformada de Hilbert - Matlab

Uploaded by

Marcos Manzano
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 31

Hilbert Vibration Decomposition

Matlab script
%
function [Y,A,om_r,dev]=hvd(x,n,fp);
%
% x - initial signal, n - number of decomposed components
% Y - decomposed components, A - component envelopes ,
% F_r - component relative angular frequency
% F=Fs*om_r/2/pi - Absolute frequecy [Hz], Fs -sampling frequency,
% dev=std(Y_i)/std(Y_1)) - relative standard deviation of the decomposed
component
%
% Example: [Y,A,om_r,dev]=hvd(x,2,0.02);
%
% LIMITATIONS:
% The sampling frequency Fs has to be in the range Fs=(20-80)*f0.
% The minimum of points in time domain is 230*3+1 = 691
%
% 2011 Michael Feldman
% For use with the book "HILBERT TRANSFORM APPLICATION
% IN MECHANICAL VIBRATION", John Wiley & Sons, 2011
%

if n>7; disp('Max number of components not greater than 7'); end


if n<=0; disp('Number of components less than
1');Y=[];A=[];F_r=[];dev=[];return;end
x=x(:); s(1)=std(x);
if s(1)==0,Y=[];A=[];F_r=[];dev=[];disp('Zero signal');return,end;
for k=1:n;
[At,Ft,phit]=inst(x,1);
omf=2*pi*lpf(Ft,fp);% Angular Frequency lowpass filtering (Smoothing)
[yi,Ai,phi]=synchdem(x,omf,fp);
Y(:,k)=yi; A(:,k)=Ai;
om_r(:,k)=omf; % Angular Frequency, [Radians]
x=x-yi;
s(k)=std(x)/s(1);
if k == 7, dev=[1 diff(s)]; return, end
end
dev=s; % Relative standard deviation of the components

return

%Example

om=0.2+0.12*cos(0.4*(0:1023));
x=cos(cumtrapz(om));
[Y,A,F_r,dev]=hvd(x,3,0.05);

figure(1);
subplot(211)
plot([x'])
axis([400 600 -1.1 1.1])
ylabel('Initial signal')
subplot(212)
plot(Y)
axis([400 600 -1.1 1.1])
xlabel('Points')
ylabel('Signal Components')

figure(2)
psd(x)

%
Matlab script

%
Fs=1; % Sampling Frequency
N=200;% Remez filter length
n=2048;
t=((0:n-1)/Fs)';

%% Example 1 (Denoising)
%u=0.2*sin(0.1*t)+ 0.02*randn(n,1);

%% Example 2 (Two harmonics)


u=sin(0.05*t)+ 0.5*sin(0.3*(t));

[t,u1,yout]=sim('s16');
y=yout(:,1);
A=yout(:,5);
w=yout(:,6);

yi=yout(:,2);
Ai=yout(:,3);
wi=yout(:,4);
yi_2=yout(:,7);
figure(1)
subplot(311)
plot([y w A])
title('Composition')
legend('Signal','Frequency', 'Envelope')

subplot(312)
plot([yi wi Ai])
title('Largest component')
legend('Signal component','Frequency', 'Envelope')

subplot(313)
plot([yi_2])
title('Residual')
xlabel('Time')
legend('Next component')
%

http://ht.technion.ac.il/Simulink/s16.mdl

Hilbert spectrum
%
function pl(Y,A,F_r,Fs)
% Decomposed components and Hilbert spectrum presentation

% Y - Array of decomposed components (through HVD),


% A - Array of component envelopes,
% F_r - Array of component relative angular frequencies
% Fs -sampling frequency,
% F=Fs*F_r/2/pi - Plotted absolute frequecy [Hz],
%
% Example: pl(Y,A,F_r,1)
%
% 2011 Michael Feldman
% For use with the book "HILBERT TRANSFORM APPLICATION
% IN MECHANICAL VIBRATION", John Wiley & Sons, 2011
%

close all;
N=0; % Number of the excluded points from the start/end
s=size(Y);
pp=N+1:length(Y)-N;
t=pp/Fs; % Time
dec=round(s(1)/150);

c=['k- '; 'b- '; 'r- '; 'm '; 'g- '; 'c- '; 'y- ' ];
if s(2)>7 s(2)=7; end

F=F_r*Fs/2/pi; % Frequency, [Hz]

for k=1:s(2),
figure(1);
subplot(s(2),1,k,'align');
plot(t,Y(pp,k),c(k,:));grid on;drawnow;
ylabel(['^Y' int2str(k)]);
axis([min(t) max(t) min(Y(pp,k)) max(Y(pp,k))]);
xlabel('Time, s');

figure(2);
subplot(211);
plot(t,F(pp,k),c(k,:),'Linewidth',2);drawnow;hold on;
grid on;
axis([min(t) max(t) 0 1.2*max(max(F(pp,:)))]);
ylabel('Frequency, Hz');

subplot(212);
plot(t,A(pp,k),c(k,:),'Linewidth',2);drawnow;hold on;
grid on;
axis([min(t) max(t) 0 1.2*max(max(A(pp,:))) ]);
ylabel('Amplitude')
xlabel('Time, s');

figure(3);
subplot(211)
plot(t,Y(pp,k),c(k,:));drawnow;hold on;
grid on;
axis([min(t) max(t) min(min(Y(pp,:))) max(max(Y(pp,:)))]);
ylabel('Y');
end

figure(1); subplot(s(2),1,1,'align'); title('Components');


figure(2); subplot(211); title('Component instantaneous frequency');
subplot(212); title('Component envelope');

figure(3); subplot(211); title('Components');


subplot(212); plot(t,sum(Y(pp,:)')); drawnow; grid on;
axis([min(t) max(t) min(sum(Y(pp,:)')) max(sum(Y(pp,:)'))]);
xlabel('Time, s'); ylabel('Y'); title('Sum of components')

figure(4);
for k=1:s(2),
stem3(t(1:dec:length(pp)),F(pp(1:dec:length(pp)),k),(A(pp(1:dec:length(pp
)),k)),c(k),'.'); hold on;drawnow;
end
xlabel('Time, s');ylabel('Frequency, Hz');zlabel('Amplitude')
axis([min(t) max(t) 0.7*min(min(F(pp,:))) 1.3*max(max(F(pp,:)))
min(min(A(pp,:))) max(max(A(pp,:)))]);
title('Hilbert spectrum')
view(-50,70);

%tilefigs([2 2],20)

return

% Example
om=0.2+0.12*cos(0.4*(0:1023));
x=cos(cumtrapz(om));
[Y,A,F_r,dev]=hvd(x,3,0.05);
pl(Y,A,F_r,2*pi)

%
Hilbert spectrum with frequency arranging
%
function plfreq(Y,A,F_r,Fs)
% Plots the decomposed components with frequency arranging
% for Hilbert spectrum presentation with frequency arranging

% Y - Array of decomposed components (through HVD),


% A - Array of component envelopes,
% F_r - Array of component relative angular frequencies
% Fs -sampling frequency,
% F=Fs*F_r/2/pi - Plotted absolute frequecy [Hz],
%
% Example: plfreq(Y,A,F_r,1)
%
% 2011 Michael Feldman
% For use with the book "HILBERT TRANSFORM APPLICATION
% IN MECHANICAL VIBRATION", John Wiley & Sons, 2011
%

close all;
N=0; % Number of the excluded points from the start/end
s=size(Y);
pp=N+1:length(Y)-N;
t=pp/Fs; % Time
dec=round(s(1)/150);

c=['k- '; 'b- '; 'r- '; 'm '; 'g- '; 'c- '; 'y- ' ];
if s(2)>7 s(2)=7; end

F=F_r*Fs/2/pi; % Frequency, [Hz]

[F1,I]=sort(F'); F=F1';
%for j = 1:s(2), Y1(:,j) = Y(I(:,j),j); end ; Y=Y1';
%for j = 1:s(2), A1(:,j) = A(I(:,j),j); end ; A=A1';

for j = 1:s(1), Y1(j,:) = Y(j,I(:,j)); end ;Y=Y1;


for j = 1:s(1), A1(j,:) = A(j,I(:,j)); end ;A=A1;

for k=1:s(2),
figure(1);
subplot(s(2),1,k,'align');
plot(t,Y(pp,k),c(k,:));grid on;drawnow;
ylabel(['^Y' int2str(k)]);
axis([min(t) max(t) min(Y(pp,k)) max(Y(pp,k))]);
xlabel('Time, s');

figure(2);
subplot(211);
plot(t,F(pp,k),c(k,:),'Linewidth',2);drawnow;hold on;
grid on;
axis([min(t) max(t) 0 1.2*max(max(F(pp,:)))]);
ylabel('Frequency, Hz');

subplot(212);
plot(t,A(pp,k),c(k,:),'Linewidth',2);drawnow;hold on;
grid on;
axis([min(t) max(t) 0 1.2*max(max(A(pp,:))) ]);
ylabel('Amplitude')
xlabel('Time, s');

figure(3);
subplot(211)
plot(t,Y(pp,k),c(k,:));drawnow;hold on;
grid on;
axis([min(t) max(t) min(min(Y(pp,:))) max(max(Y(pp,:)))]);
ylabel('Y');

end

figure(1); subplot(s(2),1,1,'align'); title('Components');


figure(2); subplot(211); title('Component instantaneous frequency');
subplot(212); title('Component envelope');

figure(3); subplot(211); title('Components');


subplot(212); plot(t,sum(Y(pp,:)')); drawnow; grid on;
axis([min(t) max(t) min(sum(Y(pp,:)')) max(sum(Y(pp,:)'))]);
xlabel('Time, s'); ylabel('Y'); title('Sum of components')

figure(4);
for k=1:s(2),
stem3(t(1:dec:length(pp)),F(pp(1:dec:length(pp)),k),(A(pp(1:dec:length(pp
)),k)),c(k),'.'); hold on;drawnow;
end
xlabel('Time, s');ylabel('Frequency, Hz');zlabel('Amplitude')
axis([min(t) max(t) 0.7*min(min(F(pp,:))) 1.3*max(max(F(pp,:)))
min(min(A(pp,:))) max(max(A(pp,:)))]);
title('Hilbert spectrum')
view(-50,70);

%tilefigs([2 2],20)

return

% Example
clear; close all
Fs=1; % Sampling frequency [Hz]
dt=1/Fs; % Time sample interval [s]
n=1024; % signal length
T=dt*(n-1); % Signal duration [s]
t=(0:dt:T)'; % Time vector
f01=0.02*ones(1,length(t)); % Signal amplitude
A01=0.005+0.06.*linspace(0,1,length(t)); % Signal frequency [Hz]

f02=0.05*ones(1,length(t)); % Signal amplitude


A02=0.04-0.02.*linspace(0,1,length(t)); % Signal frequency [Hz]

x1=A01.*cos(2*pi*cumtrapz(f01.*dt)); % Signal
x2=A02.*cos(2*pi*cumtrapz(f02.*dt)); % Signal
x=x1+x2;
[Y,A,F_r,dev]=hvd(x,2,0.05);
plfreq(Y,A,F_r,2*pi)
%
%
function [Ac, Fc]=congr(Y,A,F_r)

% Congruent envelope and instantaneous frequency


% Y - decomposed components, A - component envelopes ,
% F_r - component relative angular frequency
%
% Example: [Ac, Fc]=congr(Y,A,F_r);
%
% 2011 Michael Feldman
% For use with the book "HILBERT TRANSFORM APPLICATION
% IN MECHANICAL VIBRATION", John Wiley & Sons, 2011

S=size(Y);
k=S(2);
if k==1, Ac=A(:,1); Fc=(F_r(:,1))./Ac;
else
for l=2:k
phi(:,l)=coph(Y(:,1),Y(:,l));
Ac(:,l)=A(:,l).*cos(pi.*phi(:,l)/180);
Fc(:,l)=A(:,l).*F_r(:,l).*cos(pi.*phi(:,l)/180);
end
Ac=A(:,1)+sum(Ac')';
Fc=(F_r(:,1)+sum(Fc')')./Ac;
end
return

% Example

x1=cos(0.1*(1:1024));
x2=0.3*cos(0.3*(1:1024));
x=x1-x2;
[Y,A,F_r,dev]=hvd(x,2,0.05);
[Ac, Fc]=congr(Y,A,F_r);
figure(1)
plot([x' Ac Fc]);
legend('Signal','Congruent envelope','Congruent frequency')

%
Vibration system modeling

Nonlinear free vibration


%
close all; clear
Fs=16; % Sampling frequency
a1=1; % Linear angular frequency squared f0=1/2/pi=0.16
a3=10; % Cubic nonlinear stiffness
a5=0.0; % Nonlinear stiffness
b1=0.05; % Linear damping
b2=0; % Nonlinear damping
x0=1e0; % Initial velocity

sim('s19', 2e2); % Simulate a Simulink model

figure(1)
plot(y);
grid on
xlabel('Points, s'); ylabel('Displacement');
title(['Free vibration, a1=' num2str(a1) ', b1=' num2str(b1)]);
%
Nonlinear forced vibration
close all; clear
Fs=3000; % Sampling frequency, [Hz]
t_stop=2.5; % stop simulation time
f_start=20; % Initial frequency [Hz]
f_stop=90; % Stop frequency {Hz}
a1=(2*pi*30)^2; % Linear angular frequency squared f0=1/2/pi=0.16 [Hz]
a3=2000; % Cubic nonlinear stiffness
a5=0.0; % Nonlinear stiffness
d=0.0; % Dead zone (Backlash)
b1=2*2.5; % Linear damping
b2=0; % Nonlinear damping
sim('s20', t_stop); % Simulate a Simulink model
figure(1)
subplot(211)
plot(x);
axis tight
subplot(212)
plot(y,'k');
grid on
axis tight
xlabel('Points, s'); ylabel('Displacement');
title(['Free vibration, a1=' num2str(a1) ', b1=' num2str(b1)]);
%
Asymmetric vibration
%
close all; clear
Fs=1000; % Sampling frequency, [Hz]
t_stop=10;
a1=(2*pi*10.0)^2; %The positive stiffness, f0=10 [Hz]
a2=(2*pi*20.0)^2; % The negative stiffness
b=2; % Linear damping

sim('s21', t_stop); % Simulate a Simulink model


figure(1)
plot(y,'k');
grid on
axis tight
xlabel('Points, s'); ylabel('Displacement');
title(['Asymmetric free vibration, a1=' num2str(a1) ', a2='
num2str(a2)]);
%
Two DOF system vibration
%
clear; close all

eta=1.0;
k1=(0.1592*2*pi)^2;
k2=(0.3*2*pi)^2;
c1=0.008;
c2=0.01;
m1=1;
m2=1;
alpha=0.0;
beta=3.0;

Fs=5; % Sampling frequency, [Hz]


t_stop=6e2;

sim('s22', t_stop); % Simulate a Simulink model


figure(1);
subplot(211)
plot(y1,'b');
axis tight
ylabel('1st mode');
subplot(212)
plot(y2,'k');
axis tight
xlabel('Points'); ylabel('2nd mode');
title(['Free vibration, \eta=' num2str(eta) ', k1=' num2str(k1) ', k2='
num2str(k2) ', c1=' num2str(c1)]);

%
Vibration system IDENTIFICATION

FREEVIB identification
ff1=sqrt(abs(4.*pi^2.*f0.^2-2*h.^2+4.*pi.*f0.*h.*...
sqrt( (max(A))^2./(A.^2 +eps) -1+...
(h).^2./(4.*pi^2.*f0.^2+eps))))/2/pi ;

ffi=4.*pi^2.*f0.^2-2*h.^2-4.*pi.*f0.*h.*...
sqrt( (max(A))^2./(A.^2 +eps) -1+...
(h).^2./(4.*pi^2.*f0.^2+eps));

ind_ffi=find(ffi>0);

ff2=zeros(length(y),1);
ff2(ind_ffi)=sqrt(ffi(ind_ffi))./2/pi;

FRF=[ff1 ff2]; % Freqyency Response Function

subplot(111);
plot(FRF(pp,:),A(pp),'r--','LineWidth',1);hold on
plot(f0(pp),A(pp),'b','LineWidth',2);
xlabel('Frequecy, Hz');ylabel('Amplitude');
title(['Back-Bone, FRF']);
grid on;

% Static force calculation


figure(3);set(3,'Position',[509 42 482 284]);

iel=find(y > 0.98*A & y < 1.02*A);


yH = hilbfir(y);
ifr=find(yH > 0.97*A & y < 1.03*A);
iel(iel=pp(length(pp)))=[];
ifr(ifr=pp(length(pp)))=[];
fofr=2*h(ifr).*Ayd(ifr); % Friction Force
foel=4*(pi*f0(iel)).^2.*A(iel); % Elastic force

subplot(121);
plot([-A(iel) A(iel)],[-foel foel],'k.'); hold on
plot([-A(iel) A(iel)],[-foel foel],'g');
title('Elastic Static Force');
ylabel('Elastic Force'); xlabel('Displacement')
grid on;
hold off

subplot(122);
plot([-Ayd(ifr) Ayd(ifr)],[-fofr fofr],'k.'); hold on
plot([-Ayd(ifr) Ayd(ifr)],[-fofr fofr],'m');
title('Friction Force');
xlabel('Velocity');ylabel('Friction Force')
grid on;
hold off;

returrn
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

load duffrd
[z,A,f0,h,Ayd]=freevib(y,Fs,'d');
plfree(z,A,f0,h,Ayd); %

%
Free Vibration identification (FREEVIB)
%
clear all; close all;

load duffrd.mat

%Fs=1000; % Sampling Frequency


t=((1:length(y))/Fs)';
u=y;

N=220; % Remez filter length


sim('s23.mdl');

A = yout(:,1); % The Envelope


f = yout(:,2); % The instantaneos frequency
f0 = yout(:,3); % The natural frequency
d = yout(:,4); % The decrement
h1 = yout(:,5); % The damping coefficient
Ayd= yout(:,6); % The envelope
y = yout(:,7); % The initial signal
h2 = yout(:,8);

% Lowpass filtering
fp=0.02;
A = lpf(A, fp);
f0 = lpf(f0,fp);
h = lpf(h1,fp);
Ayd = lpf(Ayd,fp);

% Result plotting
pp=600:length(y);
figure(1);
subplot(2,2,[1:2])
plot([y A])
axis('tight')
xlabel('points')
title('Signal and Envelope')
subplot(2,2,3)
plot(f0(pp),A(pp),'.')
axis([0 1.5*max(f0(pp)) 0.9*min(A()) 1.1*max(A(pp)) ]);
title('Skeleton curve')
xlabel('Frequency, Hz')
ylabel('Amplitude')
subplot(2,2,4)
plot(h(pp),A(pp),'.k')
axis([0 2*max(h(pp)) 0.9*min(A()) 1.1*max(A(pp)) ]);
title('Damping curve')
xlabel('Damping coefficient, 1/s')
ylabel('Amplitude')

%
http://ht.technion.ac.il/Simulink/s23.mdl

FORCEVIB identification
%
function [yy,A,f0,h,Ayd,f,m]=forcevib(x,y,Fs,stype);
% Function FORCEVIB (Forced Vibration Analysis)
% It determines instantaneous modal parameters of
% linear and non-linear vibration SDOF system under forced
% quasiharmonic excitation input.
% Input:
% Vector y is a forced vibration signal in time domain,
% Vector x is an input force excitation,
% stype is a signal type, e.g. displacement, velocity, or acceleration.
% Fs is the sampling frequency [Hz]
%
% Output:
% yy - displacement, A - envelope, f0 - natural frequency [Hz],
% h - damping coefficient [1/sec],Ayd - envelope of the velocity,
% f - instantaneous frequency [Hz], m - mass value
%
% m*y'' + 2*m*h*y' +m*(2*pi*f0)^2*y = x
%
% EXAMPLE:
% [yy,A,f0,h,Ayd,f,m]=forcevib(x,y,1000,'d');
%
% LIMITATIONS:
% The sampling frequency Fs has to be in the range Fs=(10-100)*f0.
% The minimum of points in time domain is 3*230+1.
%
% 2011 Michael Feldman
% For use with the book "HILBERT TRANSFORM APPLICATION
% IN MECHANICAL VIBRATION", John Wiley & Sons, 2011
%
N=230;

if length(y)<=3*N+1, error('The length of the signal y must be more than


three times the filter order'),end;
if nargin<4, error('Not enough input arguments'), end;
if length(y)~=length(x), error('The length of the signal y must be equal
to the length of the force excitation'),end;

s=strmatch(lower(stype),{'displacement','velocity','acceleration'});
if s==0,error('Wrong signal type');
y=y(:);

elseif s==1,
yH = hilbfir(y); % Displacement Hilbert transform
yd = diffir(y,Fs); % Velocity
ydd = diffir(yd,Fs); % Aceleration
yHd = hilbfir(yd); % Hilbert velocity
yHdd= hilbfir(ydd); % Hilbert aceleration

elseif s==2
yd = y; % Velocity
y = integ(yd,Fs); % Displacement
yH = hilbfir(y); % Displacement Hilbert transform
ydd = diffir(yd,Fs); % Aceleration
yHd = hilbfir(yd); % Hilbert velocity
yHdd= hilbfir(ydd); % Hilbert aceleration

elseif s==3
ydd=y; % Acceleration
yd = integ(ydd,Fs); % Velocity
y = integ(yd,Fs); % Displacement
yH = hilbfir(y); % Displacement Hilbert transform
yHd = hilbfir(yd); % Hilbert velocity
yHdd= hilbfir(ydd); % Hilbert aceleration

end

yy=y;
xH = hilbfir(x); % Force Hilbert
xd = diffir(x,Fs); % Force derivative
xHd = diffir(xH,Fs); % Force Hilbert derivative

% Algebraic transforms and instantaneous modal parameters calculation.


A2=(yH.^2+y.^2); A=sqrt(A2); % A -- Vibration amplitude,
var2=(y.*yHd-yd.*yH);
om_y=var2./A2; % om_y -- Vibration frequency,[rad]
var4=(-y.*ydd-yH.*yHdd); %%??
om0_2=(yHdd.*yd-yHd.*ydd)./(var2+eps); % om_02 -- Undamped natural
frequency, transient [rad]
h0=0.5*(yH.*ydd-yHdd.*y)./(var2+eps); % h0 -- Damping coefficient,
transient [1/s]
Ad_A_om=(y.*yd+yH.*yHd)./(var2+eps); %
Ayd2=(yHd.^2+yd.^2); Ayd=sqrt(Ayd2); % Ayd -- Velocity amplitude,

Ax2=(xH.^2+x.^2); Ax=sqrt(Ax2); % A -- Force amplitude,


alpha= (x.*y+xH.*yH)./(A2+eps); % Item of denominator of
log.decrement,
beta = (xH.*y-x.*yH)./(A2+eps); % Item of numerator of log.decrement
xHy-xyH
om_x = (x.*xHd-xH.*xd)./(Ax2+eps); % om_x -- Vibration frequency,[rad]
f=om_x/2/pi; om2=om_x.^2;

pp=233:length(y)-233;

[P,S]=polyfit(alpha(pp)-beta(pp).*Ad_A_om(pp),om0_2(pp),1);
m=1/P(1);

[As,inAs]=sort(A(pp)); % Sorting Amplitude


inAs=inAs+pp(1)-1;
dinAs=diff(inAs);
z=find(abs(dinAs)>200);
ppz=inAs(z);

if length(ppz)>=100; disp('PLEASE WAIT')


options = optimset('Display','off'); % Optimization for Natural Frequency
m=-lsqnonlin(@omer,m,[],[],options);
end
om01_2=alpha./m-beta.*Ad_A_om/m+om0_2;
h=h0+0.5*A2.*beta./(var2+eps)./m;

% Low pass filtration (Result Smoothing)


fp=0.02;
f = lpf(f,fp); % Frequency [Hz]
A = lpf(A,fp); % Amplitude, Displaycement
f0 = sqrt(abs( lpf(om01_2,fp) ))/2/pi; % Natural frequency [Hz]
h = lpf(h,fp); % Damping [1/s]

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
function F = omer(m);
shift=20;
om01_2i=[];
er=[];
for i=1:length(ppz)-shift;
om01_2i=alpha(ppz(i:i+shift))./m-
beta(ppz(i:i+shift)).*Ad_A_om(ppz(i:i+shift))/m-om0_2(ppz(i:i+shift));
er(i)=std(om01_2i);
end
F=er;
end
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
end

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

returrn

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

load duffod
[yy,A,f0,h,Ayd,f,m]=forcevib(x,y,Fs,'d');
plfor(yy,A,f0,h,Ayd,f,m);

You might also like