以1024点FFT为例,
reg [9:0] scale_sch = 10'b11_10_01_01_01;
流水线结构中,将每个基 2 的蝶形处理单元视为一个阶段。
每个阶段进行一次数据的缩减,缩减的比例以此输入中对应阶段的两比特表示。
每阶段的两比特数可以是 3,2,1 或 0 ,它们表示了数据所需要移动的比特数。
上例共右移了3 + 2 + 1 + 1 + 1 = 8bit,即数据整体缩小了2^8 = 256倍。
注:在将数据原始位宽扩大到不会产生溢出后,缩放因子可根据Matlab定的缩放倍数
自行凑数,但有数字“1”的项最好放在最高位,因为高位对应蝶形运算的末尾,低位代表开始,
显然进行截位运算的除2操作越晚越好,靠前的话类似于蝴蝶效应误差会被积累的越多。