, , : F=CAC'.


%  , 

A=[1 2; 4 5; 7 8], F=ffts(A), A=iffts(F), A=?, % ,

%    -   ,
F=[1 0; 0 0; 0 0], A=iffts(F), % bar(A:C), 
%    -   ,
F=[0 1; 0 0; 0 0], A=iffts(F), bar(A:C), 
F=[0 0; 1 0; 0 0], A=iffts(F), % bar(A:C), 
F=[0 0; 0 1; 0 0], A=iffts(F), % bar(A:C), 
F=[0 1; 1 1; 0 0], A=iffts(F), % bar(A:C), 
%    -   ,
F=[0 0; 0 0; 0 1], A=iffts(F), bar(A:C), 

function: ffts(A),
% THE MATRIX FOURIER TRANSFORM,
var n m M i j I J r R P z c s C S f F, 
m=rows(A), n=cols(A), F=zeros(A), z=zero(n),
r=PI/2, R=r/n, P=r/m, M=1/sqrt(n*m), n=n-1, m=m-1,
f=0, for i=0:m, for j=0:n, f=f+A[j][i], end, end, F[0][0]=M*f/2, 
for J=1:n, C=R*J, f=0, 
for j=0:n, c=cos(C*(2*j+1)),
for i=0:m, f=f+A[j][i]*c, end, end, 
F[J][0]=M*f, end,
for I=1:m, S=P*I, f=0, 
for i=0:m, s=cos(S*(2*i+1)), 
for j=0:n, f=f+A[j][i]*s, end, end, 
F[0][I]=M*f, end, M=2*M, 
for J=1:n, C=R*J,
for j=0:n, z[j]=cos(C*(2*j+1)), end,
for I=1:m, S=P*I, f=0, 
for i=0:m, s=cos(S*(2*i+1)),
for j=0:n, c=z[j], f=f+A[j][i]*c*s, end, end, 
F[J][I]=M*f, end, end,
return F, end,

function: iffts(F),
% REVERSED,
var n m M i j I J r R P z s c C S A,
m=rows(F), n=cols(F), A=zeros(F), z=zero(n),
r=PI/2, R=r/n, P=r/m, M=2/sqrt(n*m), n=n-1, m=m-1,
for J=0:n, C=R*(2*J+1),
for j=0:n, z[j]=cos(C*j), end,
for I=0:m, S=P*(2*I+1), f=0, 
for i=0:m, s=cos(S*i), 
for j=0:n, c=z[j], f=f+F[j][i]*c*s, end, end, 
A[J][I]=M*f, end, end,
return A, end,

- ,

.


%toolbox control, 

% 'money'=send('money.jpg:10'),  
% 'money2'=send('money2.jpg:10'),

A=receive('money'), F=ffts(A), A=iffts(F), % 'moneyf'=send(F), 
B=receive('money2'), F=ffts(B), A=iffts(F), % 'money2f'=send(F),

% REVERSED, 
F=receive('moneyf'),  A=iffts(F), % 'moneyr'=send(A),
F=receive('money2f'), A=iffts(F), % 'money2r'=send(A),

% THE MOON,

%'M'=send('moon.jpg:5'), 
M=receive('M'), F=ffts(M), % 'MF'=send(F),



Rambler's Top100