let signal_select3 si s0 s1 s2 = 
        let f = signal_check_frequency4 si s0 s1 s2 in
        let new_signal = fun t -> 
                if (signal_fun si) t = N 0 then (signal_fun s0) t
                else if (signal_fun si) t = N 1 then (signal_fun s1) t
                else if (signal_fun si) t = N 2 then (signal_fun s2) t
                else raise (Signal_operation "select3 index should be 0 or 1 or 2.")
        in
        (f, new_signal)