Clear[butterworthFilter];butterworthFilter[data_,ωc_,dt_:1,order_:2]:=Module[{f,b},f=RecurrenceFilter[ToDiscreteTimeModel[ButterworthFilterModel[{"Lowpass",order,ωc }],dt],data];b=RecurrenceFilter[ToDiscreteTimeModel[ButterworthFilterModel[{"Lowpass",order,ωc }],dt],Reverse[data]];(f+Reverse[b])/2]