diff --git a/applications/lofar2/libraries/sdp/src/vhdl/node_sdp_oversampled_filterbank.vhd b/applications/lofar2/libraries/sdp/src/vhdl/node_sdp_oversampled_filterbank.vhd
index c5e3babf49bcb77568dc796923ab222233061423..bec60072a6ac16140d3fcd74bb33d0a8cdfc6a99 100644
--- a/applications/lofar2/libraries/sdp/src/vhdl/node_sdp_oversampled_filterbank.vhd
+++ b/applications/lofar2/libraries/sdp/src/vhdl/node_sdp_oversampled_filterbank.vhd
@@ -107,7 +107,10 @@ ARCHITECTURE str OF node_sdp_oversampled_filterbank IS
                                          NATURAL'IMAGE(c_sdp_W_sub_weight) & "b" &
                                          NATURAL'IMAGE(c_sdp_W_sub_weight_fraction) & "f_unit";
 
-  -- Use quantized subbands
+  -- Use quantized subbands, so c_subband_raw_dat_w = 18b.
+  -- . Maybe later use raw subbands like in node_sdp_filterbank, but for now
+  --   appling subband weights and bf weights at c_sdp_W_subband = 18b subbands
+  --   is acceptable.
   CONSTANT c_subband_raw_dat_w      : NATURAL := c_sdp_W_subband;
   CONSTANT c_subband_raw_fraction_w : NATURAL := 0;
 
@@ -118,11 +121,11 @@ ARCHITECTURE str OF node_sdp_oversampled_filterbank IS
   CONSTANT c_complex_pfb_pipeline  : NATURAL := 2;
 
   -- Use WG as local oscillator, buf contains 16b sin and 16b cos
-  -- . c_sdp_W_local_oscillator = c_halfword_w = 16b
+  -- . c_sdp_W_local_oscillator = 16b
   -- . c_sdp_W_local_oscillator_fraction = 16b - 1 sign bit = 15b
   CONSTANT c_buf            : t_c_mem := (latency  => 1,
                                           adr_w    => ceil_log2(2 * c_sdp_N_fft),
-                                          dat_w    => c_nof_complex * c_halfword_w,      
+                                          dat_w    => c_nof_complex * c_sdp_W_local_oscillator,
                                           nof_dat  => c_sdp_R_os * c_sdp_N_fft,  
                                           init_sl  => '0');
 
@@ -171,18 +174,22 @@ ARCHITECTURE str OF node_sdp_oversampled_filterbank IS
   SIGNAL wpfb_unit_out_sosi_arr_piped   : t_dp_sosi_arr(c_sdp_P_pfb-1 DOWNTO 0)  := (OTHERS => c_dp_sosi_rst);
 
   -- Mixer to shift f_sub/2
-  SIGNAL complex_mult_src_out_arr       : t_dp_sosi_arr(c_sdp_S_pn-1 DOWNTO 0)   := (OTHERS => c_dp_sosi_rst);
-  SIGNAL requantize_src_out_arr         : t_dp_sosi_arr(c_sdp_S_pn-1 DOWNTO 0)   := (OTHERS => c_dp_sosi_rst);
+  SIGNAL mixer_complex_mult_src_out_arr       : t_dp_sosi_arr(c_sdp_S_pn-1 DOWNTO 0) := (OTHERS => c_dp_sosi_rst);
+  SIGNAL mixer_complex_requantize_src_out_arr : t_dp_sosi_arr(c_sdp_S_pn-1 DOWNTO 0) := (OTHERS => c_dp_sosi_rst);
 
+  -- Complex input FFT (from LO mixer)
   SIGNAL wpfb_unit_complex_in_sosi_arr  : t_dp_sosi_arr(c_sdp_S_pn-1 DOWNTO 0)   := (OTHERS => c_dp_sosi_rst);
   SIGNAL wpfb_unit_complex_fil_sosi_arr : t_dp_sosi_arr(c_sdp_S_pn-1 DOWNTO 0)   := (OTHERS => c_dp_sosi_rst);
   SIGNAL wpfb_unit_complex_out_sosi_arr : t_dp_sosi_arr(c_sdp_S_pn-1 DOWNTO 0)   := (OTHERS => c_dp_sosi_rst);
-  SIGNAL wpfb_unit_out_resized_sosi_arr : t_dp_sosi_arr(c_sdp_S_pn-1 DOWNTO 0)   := (OTHERS => c_dp_sosi_rst);
 
-  SIGNAL wpfb_fifo_sosi_arr             : t_dp_sosi_arr(c_sdp_S_pn-1 DOWNTO 0)   := (OTHERS => c_dp_sosi_rst);
-  SIGNAL wpfb_fifo_siso_arr             : t_dp_siso_arr(c_sdp_S_pn-1 DOWNTO 0)   := (OTHERS => c_dp_siso_rst);
-  SIGNAL wpfb_resized_sosi_2arr         : t_dp_sosi_2arr_2(c_sdp_P_pfb-1 DOWNTO 0) := (OTHERS => (OTHERS => c_dp_sosi_rst));
-  SIGNAL wpfb_resized_siso_2arr         : t_dp_siso_2arr_2(c_sdp_P_pfb-1 DOWNTO 0) := (OTHERS => (OTHERS => c_dp_siso_rst));
+  -- Remove negative frequencies
+  SIGNAL wpfb_complex_out_resized_sosi_arr  : t_dp_sosi_arr(c_sdp_S_pn-1 DOWNTO 0)   := (OTHERS => c_dp_sosi_rst);
+
+  -- Interleave positive frequencies per factor Q_fft = 2, like with output of real input FFT
+  SIGNAL wpfb_complex_out_fifo_sosi_arr     : t_dp_sosi_arr(c_sdp_S_pn-1 DOWNTO 0)   := (OTHERS => c_dp_sosi_rst);
+  SIGNAL wpfb_complex_out_fifo_siso_arr     : t_dp_siso_arr(c_sdp_S_pn-1 DOWNTO 0)   := (OTHERS => c_dp_siso_rst);
+  SIGNAL wpfb_complex_out_resized_sosi_2arr : t_dp_sosi_2arr_2(c_sdp_P_pfb-1 DOWNTO 0) := (OTHERS => (OTHERS => c_dp_sosi_rst));
+  SIGNAL wpfb_complex_out_resized_siso_2arr : t_dp_siso_2arr_2(c_sdp_P_pfb-1 DOWNTO 0) := (OTHERS => (OTHERS => c_dp_siso_rst));
 
   SIGNAL subband_equalizer_in_sosi_arr  : t_dp_sosi_arr(c_sdp_R_os * c_sdp_P_pfb-1 DOWNTO 0) := (OTHERS => c_dp_sosi_rst);
   SIGNAL subband_equalizer_out_sosi_arr : t_dp_sosi_arr(c_sdp_R_os * c_sdp_P_pfb-1 DOWNTO 0) := (OTHERS => c_dp_sosi_rst);
@@ -342,23 +349,23 @@ BEGIN
   gen_complex_mult: FOR I IN 0 TO c_sdp_S_pn-1 GENERATE
     u_common_complex_mult : ENTITY common_mult_lib.common_complex_mult
     GENERIC MAP (
-      g_in_a_w           => c_halfword_w,  -- = c_sdp_W_local_oscillator = 16
-      g_in_b_w           => c_sdp_W_adc,
-      g_out_p_w          => c_halfword_w + c_sdp_W_adc,
+      g_in_a_w           => c_sdp_W_local_oscillator,  -- = 16
+      g_in_b_w           => c_sdp_W_adc,  -- = 14
+      g_out_p_w          => c_sdp_W_local_oscillator + c_sdp_W_adc,  -- = 16 + 14 = 30
       g_conjugate_b      => FALSE
     )
     PORT MAP (
       clk        => dp_clk,
       clken      => '1',
       rst        => dp_rst,
-      in_ar      => wg_out_dat(c_halfword_w-1 DOWNTO 0),
-      in_ai      => wg_out_dat(2 * c_halfword_w-1 DOWNTO c_halfword_w),
+      in_ar      => wg_out_dat(c_sdp_W_local_oscillator-1 DOWNTO 0),
+      in_ai      => wg_out_dat(2 * c_sdp_W_local_oscillator-1 DOWNTO c_sdp_W_local_oscillator),
       in_br      => si_sosi_arr(I).data(c_sdp_W_adc-1 DOWNTO 0),
       in_bi      => (OTHERS => '0'),
       in_val     => si_sosi_arr(I).valid,
-      out_pr     => complex_mult_src_out_arr(I).re(c_halfword_w + c_sdp_W_adc-1 DOWNTO 0),
-      out_pi     => complex_mult_src_out_arr(I).im(c_halfword_w + c_sdp_W_adc-1 DOWNTO 0),
-      out_val    => complex_mult_src_out_arr(I).valid
+      out_pr     => mixer_complex_mult_src_out_arr(I).re(c_sdp_W_local_oscillator + c_sdp_W_adc-1 DOWNTO 0),
+      out_pi     => mixer_complex_mult_src_out_arr(I).im(c_sdp_W_local_oscillator + c_sdp_W_adc-1 DOWNTO 0),
+      out_val    => mixer_complex_mult_src_out_arr(I).valid
     );    
     
     --requantize
@@ -373,16 +380,16 @@ BEGIN
       g_msb_clip_symmetric  => FALSE,      
       g_pipeline_remove_lsb => 0,
       g_pipeline_remove_msb => 0,
-      g_in_dat_w            => c_halfword_w + c_sdp_W_adc,
+      g_in_dat_w            => c_sdp_W_local_oscillator + c_sdp_W_adc,
       g_out_dat_w           => c_sdp_W_adc                                                                                              
     )
     PORT MAP (
       rst          => dp_rst, 
       clk          => dp_clk,
       -- ST sink
-      snk_in       => complex_mult_src_out_arr(I),
+      snk_in       => mixer_complex_mult_src_out_arr(I),
       -- ST source
-      src_out      => requantize_src_out_arr(I)
+      src_out      => mixer_complex_requantize_src_out_arr(I)
     );
   END GENERATE;
 
@@ -411,12 +418,12 @@ BEGIN
     in_dat     => dp_bsn_source_restart_pipe,
     out_dat    => dp_bsn_source_restart_pipe_complex
   ); 
-  PROCESS(requantize_src_out_arr, si_sosi_0_piped)
+  PROCESS(mixer_complex_requantize_src_out_arr, si_sosi_0_piped)
   BEGIN
     FOR I IN 0 TO c_sdp_S_pn-1 LOOP
       wpfb_unit_complex_in_sosi_arr(I) <= si_sosi_0_piped;
-      wpfb_unit_complex_in_sosi_arr(I).re <= requantize_src_out_arr(I).re;
-      wpfb_unit_complex_in_sosi_arr(I).im <= requantize_src_out_arr(I).im;
+      wpfb_unit_complex_in_sosi_arr(I).re <= mixer_complex_requantize_src_out_arr(I).re;
+      wpfb_unit_complex_in_sosi_arr(I).im <= mixer_complex_requantize_src_out_arr(I).im;
     END LOOP;
   END PROCESS;
 
@@ -461,7 +468,7 @@ BEGIN
         rst          => dp_rst,
         clk          => dp_clk,
         snk_in       => wpfb_unit_complex_out_sosi_arr(I),
-        src_out      => wpfb_unit_out_resized_sosi_arr(I)
+        src_out      => wpfb_complex_out_resized_sosi_arr(I)
       );
   END GENERATE;
 
@@ -479,18 +486,18 @@ BEGIN
       PORT MAP (
         rst          => dp_rst,
         clk          => dp_clk,
-        snk_in       => wpfb_unit_out_resized_sosi_arr(I),
-        src_out      => wpfb_fifo_sosi_arr(I),
-        src_in       => wpfb_fifo_siso_arr(I)
+        snk_in       => wpfb_complex_out_resized_sosi_arr(I),
+        src_out      => wpfb_complex_out_fifo_sosi_arr(I),
+        src_in       => wpfb_complex_out_fifo_siso_arr(I)
     );
   END GENERATE;
 
   -- rewire 1d array of 1 X S_pn to 2d array of 2 X P_pfb
   gen_rewire: FOR I IN 0 TO c_sdp_P_pfb-1 GENERATE
-    wpfb_resized_sosi_2arr(I)(0) <= wpfb_fifo_sosi_arr(2*I);
-    wpfb_resized_sosi_2arr(I)(1) <= wpfb_fifo_sosi_arr(2*I + 1);
-    wpfb_fifo_siso_arr(2*I)      <= wpfb_resized_siso_2arr(I)(0);
-    wpfb_fifo_siso_arr(2*I + 1)  <= wpfb_resized_siso_2arr(I)(1);
+    wpfb_complex_out_resized_sosi_2arr(I)(0) <= wpfb_complex_out_fifo_sosi_arr(2*I);
+    wpfb_complex_out_resized_sosi_2arr(I)(1) <= wpfb_complex_out_fifo_sosi_arr(2*I + 1);
+    wpfb_complex_out_fifo_siso_arr(2*I)      <= wpfb_complex_out_resized_siso_2arr(I)(0);
+    wpfb_complex_out_fifo_siso_arr(2*I + 1)  <= wpfb_complex_out_resized_siso_2arr(I)(1);
   END GENERATE;
 
   -- Interleave 2 to 1 for all S_pn signals.
@@ -502,8 +509,8 @@ BEGIN
       PORT MAP (
         rst          => dp_rst,
         clk          => dp_clk,
-        snk_in_arr   => wpfb_resized_sosi_2arr(I),
-        snk_out_arr  => wpfb_resized_siso_2arr(I),
+        snk_in_arr   => wpfb_complex_out_resized_sosi_2arr(I),
+        snk_out_arr  => wpfb_complex_out_resized_siso_2arr(I),
         src_out      => subband_equalizer_in_sosi_arr(c_sdp_P_pfb + I)
     );
   END GENERATE;