my_fft_fix.asv
来自「基于EMCA368国际标准的物理层超宽带协议的基本仿真程序,都是自己编写的」· ASV 代码 · 共 52 行
ASV
52 行
function dout = my_fft_fix(din);
bit_length = 16
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)
end
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?