总觉得用MATLAB这种高级语言看不出硬件架构,但是师兄的这份代码又注明了算法,怎么理解这个就是采用的mdc fft 算法啊
%16点r2mdc dif half
function [x1,x2,x3,x4,x1_test,x2_test,x3_test,x4_test]=r2mdc_16(x)
[a,b]=size(x);
x=half(x);
%旋转因子保证相同(已经处理为半精度)
n=16;
W=zeros(1,n/2);
for i=1:n/2
w(2*i-1)=cos(-2*(i-1)*pi/n);
w(2*i)=sin(-2*(i-1)*pi/n);
W(i)= w(2*i-1)+1i* w(2*i);
end
W=half(W);
%第一级
x1 = half(zeros(a,b));
x1_1 = butterfly([x(:,1),x(:,9)],W(1));
x1_2 = butterfly([x(:,2),x(:,10)],W(2));
x1_3 = butterfly([x(:,3),x(:,11)],W(3));
x1_4 = butterfly([x(:,4),x(:,12)],W(4));
x1_5 = butterfly([x(:,5),x(:,13)],W(5));
x1_6 = butterfly([x(:,6),x(:,14)],W(6));
x1_7 = butterfly([x(:,7),x(:,15)],W(7));
x1_8 = butterfly([x(:,8),x(:,16)],W(8));
x1 = [x1_1(:,1),x1_2(:,1),x1_3(:,1),x1_4(:,1),x1_5(:,1),x1_6(:,1),x1_7(:,1),x1_8(:,1),x1_1(:,2),x1_2(:,2),x1_3(:,2),x1_4(:,2),x1_5(:,2),x1_6(:,2),x1_7(:,2),x1_8(:,2)];
x1_test=[x1_1(:,1),x1_2(:,1),x1_3(:,1),x1_4(:,1),x1_5(:,1),x1_6(:,1),x1_7(:,1),x1_8(:,1);x1_1(:,2),x1_2(:,2),x1_3(:,2),x1_4(:,2),x1_5(:,2),x1_6(:,2),x1_7(:,2),x1_8(:,2)];
%%第二级蝶形运算
x2 = half(zeros(a,b));
x2_1=butterfly([x1(:,1),x1(:,5)],W(1));
x2_2=butterfly([x1(:,2),x1(:,6)],W(3));
x2_3=butterfly([x1(:,3),x1(:,7)],W(5));
x2_4=butterfly([x1(:,4),x1(:,8)],W(7));
x2_5=butterfly([x1(:,9),x1(:,13)],W(1));
x2_6=butterfly([x1(:,10),x1(:,14)],W(3));
x2_7=butterfly([x1(:,11),x1(:,15)],W(5));
x2_8=butterfly([x1(:,12),x1(:,16)],W(7));
x2_test=[x2_1,x2_2,x2_3,x2_4,x2_5,x2_6,x2_7,x2_8];
x2= [x2_1(:,1),x2_2(:,1),x2_3(:,1),x2_4(:,1),x2_1(:,2),x2_2(:,2),x2_3(:,2),x2_4(:,2),x2_5(:,1),x2_6(:,1),x2_7(:,1),x2_8(:,1),x2_5(:,2),x2_6(:,2),x2_7(:,2),x2_8(:,2)];
%%第三级蝶形运算
x3 = half(zeros(a,b));
x3_1 = butterfly([x2(:,1),x2(:,3)],W(1));
x3_2 = butterfly([x2(:,2),x2(:,4)],W(5));
x3_3 = butterfly([x2(:,5),x2(:,7)],W(1));
x3_4 = butterfly([x2(:,6),x2(:,8)],W(5));
x3_5 = butterfly([x2(:,9),x2(:,11)],W(1));
x3_6 = butterfly([x2(:,10),x2(:,12)],W(5));
x3_7 = butterfly([x2(:,13),x2(:,15)],W(1));
x3_8 = butterfly([x2(:,14),x2(:,16)],W(5));
x3_test=[x3_1,x3_2,x3_3,x3_4,x3_5,x3_6,x3_7,x3_8];
x3 = [x3_1(:,1),x3_2(:,1),x3_1(:,2),x3_2(:,2),x3_3(:,1),x3_4(:,1),x3_3(:,2),x3_4(:,2)