% Call: tdft_8x8.m.m % Demo code for calculating the 8x8-point DFT by % the tensor transform: 12 8-point DFTs are used % % Dr. Artyom M. Grigoryan, 11/12/1997 N=8; f=[ 1 2 1 3 1 2 1 3 2 4 1 1 2 3 2 1 1 3 2 2 1 1 3 2 1 2 1 1 3 1 2 1 2 4 1 2 1 2 3 2 3 2 2 3 2 1 1 3 1 2 3 4 2 1 3 2 2 3 1 2 1 3 1 2]; F2D=fft2(f); % 2-D DFT by the tensor transform FT=zeros(N); s=1; for p=0:N-1 Image_signal=zeros(1,N); Image_signal=ft_pst(f,p,s); TDFFT_signal=fft(Image_signal); T_ps=cyclic_group(p,s,N)+1; for k=1:N p1=T_ps(k,1); s1=T_ps(k,2); FT(s1,p1)=TDFFT_signal(k); end; end; p=1; L=2; for s=0:L:N-1 Image_signal=zeros(1,N); Image_signal=ft_pst(f,p,s); TDFFT_signal=fft(Image_signal); T_ps=cyclic_group(p,s,N)+1; for k=1:N p1=T_ps(k,1); s1=T_ps(k,2); FT(s1,p1)=TDFFT_signal(k); end; end; % to check if the 2-D DFT has been calculated correctly: Inv_image=real(ifft2(FT)); %Inv_image=Inv_image.*(Inv_image>=0); Inv_image=round(Inv_image); fprintf(' %2d %2d %2d %2d %2d %2d %2d %2d \n',Inv_image'); % 1 2 1 3 1 2 1 3 % 2 4 1 1 2 3 2 1 % 1 3 2 2 1 1 3 2 % 1 2 1 1 3 1 2 1 % 2 4 1 2 1 2 3 2 % 3 2 2 3 2 1 1 3 % 1 2 3 4 2 1 3 2 % 2 3 1 2 1 3 1 2