summaryrefslogtreecommitdiff
path: root/etfe.sci
blob: b09b7c493f92455a1b2aa11f06d6c0fc3660851e (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
function varargout = etfe(varargin)
    [lhs,rhs] = argn()
    data = varargin(1)
    if rhs == 1 then
        n = 128
    elseif rhs == 2 then
        n = varargin(2)
    end
    y = data.OutputData;
    u = data.InputData
    N = size(y,'r')
    v = linspace(1,N,n)
    y1 = y(v);u1 = u(v)
    //y1 = y((1:(N-1)/(n-1):N));u1 = u((1:(N-1)/(n-1):N))
    //y1($) = y(N);u1($) = u(N)
    data12 = [y1,u1]
    z = [fft(y1),fft(u1)]
    z = z/size(z,'r')
    magData1 = abs(z(:,1));magData2 = abs(z(:,2))
    argData1 = phasemag(z(:,1),'m');argData2 = phasemag(z(:,2),'m')
    magData = magData1./magData2;argData = argData1-argData2
    argData = [cosd(argData) sind(argData)]
    data = [magData.*argData(:,1) magData.*argData(:,2)]
    output = data(:,1)+%i*data(:,2)
    resp = output(1:ceil(length(output)/2))
    frq = (1: ceil(n/2)) * %pi/floor(n/2)
    output = frd(frq,resp,1)
    varargout(1)= output
endfunction