You are on page 1of 3

‘Transpose the worksheet for smoothening

m=size(col(1))

n=size(col(2))

for r=1 to m step 1 do

for c=3 to n+2 step 1 do

cell(n+4+r,c-2)=cell(c,r)

end for

end for

*****************************

Data smoothening by Kernel method (Sobhan)

m = size(col(1)) ' # of columns

'ci initial column #

'co corresponding output column #

for ci=3 to m+2 step 1 do

co=ci

' Kernel Smoothing

' This transform smooths data using kernel smoothing

r=2 ' percentage smoothing

' Program

x=col(ci) ' data

n1=size(x)

tx=fft(x) ' fft of data

nx=size(tx)/2
n=if(int(r*nx/200)>0, int(r*nx/200), 1)

' generate triangular smoothing kernel

lt={data(n,0,-1), data(0,0,nx-2*n-2), data(0,n)}

lt1=lt/total(lt)

tk=fft(lt1) ' fft of kernel

td=mulcpx(tk,tx) ' convolve kernel and data

sd=invfft(td) ' transform back to time domain

tsd=real(sd) ' normalize data

' Output

ru=if(mod(n1,2)>0, (nx-n1+1)/2, (nx-n1+2)/2)

' strip out padded channels

rl=if(mod(n1,2)>0, nx-ru, nx-ru+1)

tsd1=tsd[data(ru,rl)]

col(co)=tsd1 ' save smoothed data to worksheet

end for

Reverse transpose

m = size(col(1))

n = size(col(2))

for r=1 to n step 1 do

for c=3 to m+2 step 1 do

cell(m+4+r,c-2)=cell(c,r)

end for
end for

****************************

You might also like