diff --git a/libraries/dsp/filter/tb/vhdl/tb_fil_ppf_wide_file_data.vhd b/libraries/dsp/filter/tb/vhdl/tb_fil_ppf_wide_file_data.vhd
index 92d173bff199c578ad6c3d0f19d2aa4dbfcd2d16..183e9c819f7d379c5408d2073296fd7c18ab2491 100644
--- a/libraries/dsp/filter/tb/vhdl/tb_fil_ppf_wide_file_data.vhd
+++ b/libraries/dsp/filter/tb/vhdl/tb_fil_ppf_wide_file_data.vhd
@@ -103,7 +103,7 @@ entity tb_fil_ppf_wide_file_data is
       --   requant_remove_lsb : natural;  -- = 1
       --   requant_remove_msb : natural;  -- = 0
       -- end record;
-    g_fil_ppf : t_fil_ppf := (4, 0, 32, 16, 1, 1, 8, 16, 16);
+    g_fil_ppf : t_fil_ppf := (4, 0, 128, 16, 2, 1, 8, 16, 16);
       -- type t_fil_ppf is record
       --   wb_factor      : natural; -- = 4, the wideband factor
       --   nof_chan       : natural; -- = default 0, defines the number of channels (=time-multiplexed input signals): nof channels = 2**nof_chan
@@ -112,19 +112,14 @@ entity tb_fil_ppf_wide_file_data is
       --   nof_streams    : natural; -- = 1, the number of streams that are served by the same coefficients.
       --   backoff_w      : natural; -- = 0, number of bits for input backoff to avoid output overflow
       --   in_dat_w       : natural; -- = 8, number of input bits per stream
-      --   out_dat_w      : natural; -- = 23, number of output bits (per stream). It is set to in_dat_w+coef_dat_w-1 = 23 to be sure the requantizer
-      --                                  does not remove any of the data in order to be able to verify with the original coefficients values.
+      --   out_dat_w      : natural; -- = 16, number of output bits (per stream)
       --   coef_dat_w     : natural; -- = 16, data width of the FIR coefficients
       -- end record;
-    --g_coefs_file_prefix   : string := "hex/run_pfir_m_pfir_coeff_fircls1";
-    --g_data_file           : string := "data/run_pfir_m_sinusoid_chirp_8b_16taps_128points_16b_16b.dat";  -- coefs, input and output data for 1 stream
-    --g_data_file_nof_lines : natural := 25600;  -- number of lines with input data that is available in the g_data_file
-    --g_data_file_nof_read  : natural := 5000;   -- number of lines with input data to read and simulate, must be <= g_data_file_nof_lines
-    g_coefs_file_prefix   : string := "hex/run_pfb_complex_m_pfir_coeff_fircls1";
-    g_data_file           : string := "data/run_pfb_complex_m_phasor_8b_16taps_32points_16b_16b.dat";  -- coefs, input and output data for 1 stream
-    g_data_file_nof_lines : natural := 1600;  -- number of lines with input data that is available in the g_data_file
-    g_data_file_nof_read  : natural := 1600;   -- number of lines with input data to read and simulate, must be <= g_data_file_nof_lines
-   
+    g_coefs_file_prefix   : string := "hex/run_pfir_m_pfir_coeff_fircls1";
+    g_data_file           : string := "data/run_pfir_m_sinusoid_chirp_8b_16taps_128points_16b_16b.dat";  -- coefs, input and output data for 1 stream
+    g_data_file_nof_lines : natural := 25600;  -- number of lines with input data that is available in the g_data_file
+
+    g_data_file_nof_read  : natural := 5000;   -- number of lines with input data to read and simulate, must be <= g_data_file_nof_lines
     g_enable_in_val_gaps  : boolean := FALSE
   );
 end entity tb_fil_ppf_wide_file_data;
@@ -248,8 +243,14 @@ begin
         for P in 0 to g_fil_ppf.wb_factor-1 loop  -- parallel
           vP := g_fil_ppf.wb_factor-1-P;          -- time to big endian
           for S in 0 to g_fil_ppf.nof_streams-1 loop  -- parallel
-            in_dat_arr(vP*g_fil_ppf.nof_streams + S) <= TO_SVEC(input_data_arr(I*g_fil_ppf.wb_factor + P), c_fil_slv_w);
-            in_val                                   <= '1';
+            if S=1 then
+              -- if present then stream 1 carries zero data to be able to recognize the stream order in the wave window
+              in_dat_arr(vP*g_fil_ppf.nof_streams + S) <= (OTHERS=>'0');
+            else
+              -- stream 0 and if present the other streams >= 2 carry the same input reference data to verify the filter function
+              in_dat_arr(vP*g_fil_ppf.nof_streams + S) <= TO_SVEC(input_data_arr(I*g_fil_ppf.wb_factor + P), c_fil_slv_w);
+            end if;
+            in_val <= '1';
           end loop;
         end loop;
         in_val <= '1';
@@ -352,11 +353,17 @@ begin
         for P in 0 to g_fil_ppf.wb_factor-1 loop  -- parallel
           vP := g_fil_ppf.wb_factor-1-P;
           for S in 0 to g_fil_ppf.nof_streams-1 loop  -- parallel
-            -- all streams carry the same data
             v_out_dat := TO_SINT(out_dat_arr(vP*g_fil_ppf.nof_streams + S));
-            v_exp_dat := expected_data_arr(vI*g_fil_ppf.wb_factor + P);
-            assert v_out_dat <= v_exp_dat + c_diff_margin and
-                   v_out_dat >= v_exp_dat - c_diff_margin report "Output data error" severity error;
+            if S=1 then
+              -- stream 1 carries zero data
+              v_exp_dat := 0;
+              assert v_out_dat = v_exp_dat report "Output data error (stream 1 not zero)" severity error;
+            else
+              -- stream 0 and all other streams >= 2 carry the same data
+              v_exp_dat := expected_data_arr(vI*g_fil_ppf.wb_factor + P);
+              assert v_out_dat <= v_exp_dat + c_diff_margin and
+                     v_out_dat >= v_exp_dat - c_diff_margin report "Output data error" severity error;
+            end if;
           end loop;
         end loop;
         if vK < c_nof_channels-1 then  -- serial