allow np.random.RandomState to be passed as seed
update zero_phase to use filtfilt