diff --git a/libraries/dsp/fft/tb/vhdl/tb_fft_pkg.vhd b/libraries/dsp/fft/tb/vhdl/tb_fft_pkg.vhd
index 1b26c17686738fa84a2da8ed165f432e8ee3c9e2..0921436678fbde876794236a6f2c6b74edada853 100644
--- a/libraries/dsp/fft/tb/vhdl/tb_fft_pkg.vhd
+++ b/libraries/dsp/fft/tb/vhdl/tb_fft_pkg.vhd
@@ -427,10 +427,11 @@ PACKAGE BODY tb_fft_pkg IS
       end if;
     else
       -- Complex input data
-      v_blk_index := out_val_cnt / nof_points / nof_channels;   -- each block has nof_channels*nof_points
-      out_channel <= out_val_cnt mod nof_channels;              -- the nof_channels are interleaved per sample
+      v_blk_index := out_val_cnt / nof_points / nof_channels;     -- each block has nof_channels*nof_points
+      out_channel <= (out_val_cnt / wb_factor) mod nof_channels;  -- the nof_channels are interleaved per wb_factor number of samples
       
-      v_index := (out_val_cnt / nof_channels) mod nof_points;   -- index within a block independent of nof_channels
+      v_index := ((out_val_cnt / wb_factor / nof_channels) * wb_factor +
+                  (out_val_cnt MOD wb_factor)) mod nof_points;     -- index within a block independent of nof_channels
       
       v_bin := fft_index_to_bin_frequency(wb_factor, nof_points, v_index, use_reorder, use_fft_shift, use_separate);