📄 my_fft_fix.m
字号:
function dout = my_fft_fix(din);
bit_length = 32
MAX = 2^(bit_length-1);
cols=size(din,2);
c=rand(1,128);% 定制128点抽样%
%%%%求反序,实现反序输入,正序输出%%%%
c(1)=0;c(2)=64;
for i=1:6 % log(128)-1=6%
c((2^i+1):2^(i+1))=c(1:2^i)+2^(6-i);
end
d=rand(1,128);
%%%%求出所有的蝶算指数因子%%%%
x=rand(128,8);a=rand(1,64);q=1;w=rand(1,64);
for o=1:64
w(o) = round(MAX*exp(-j*2*pi*(o-1)/128))/MAX;
end
for cl=1:cols
for i=1:128
d(i)=din((c(i)+1),cl);
end%完成初始值的反序%
%%%%fft变换%%%%
x(:,1)=d';
for k=2:8
i=1;p=1;
for m=1:2^(k-2)%求出每级所需的蝶算指数因子%
q=(m-1)*128/(2^(k-1));
a(p)=w(q+1);p=p+1;
end
for n=1:128/(2^(k-1))%对偶节点个数的确定及变换计算%
p=1;
for h=i:i+(2^(k-2)-1)
x(h,k)=round(MAX*(x(h,k-1)+comp_multi(a(p),x(h+2^(k-2),k-1),MAX))/2)/MAX;
x(h+2^(k-2),k)=round(MAX*(x(h,k-1)-comp_multi(a(p),x(h+2^(k-2),k-1),MAX))/2)/MAX;
p=p+1;
end
i=(2^(k-1))*n+1;
end
end
dout(:,cl) = x(:,8)*128;
end
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -