# Are noncausal filters ever used in practice?

Basically what it says in the title; I have just started reading about these things and find noncausal filters pretty interesting in concept, but also they do not seem like they would have any advantage worth sacrificing real-time processing. Since "I have just started reading about these things" I feel as if I should make sure, and would also be interested in hearing: does anyone know if there are noncausal filters commonly used in practice? Why are they preferred? Thanks.

Jeff Boucher.

Yes.

The problem with a system that operates in (near) real time is that you can't look into the future. One way you can deal with this is if you only need a finite amount of look-ahead is to put some delays and then delay the output so you're still causal.

However, many filtering problems have non-causality allowed, e.g. filtering a file on a disk (which occurs a lot. Audio or image or video files you download, time series such as finance data, or histories of systems). For example, you can collect a time series and smooth it with the rauch-tung-striebel filter rather than running a fixed lag smoother.

• Yes, image processing in particular benefits from using noncausal filters. In image processing, the direction is not "time" but "x" or "y". So there is no problem with having to know things in the future. – Peter K. Aug 14 '15 at 15:29
• @PeterK. for the statement system that operates in (near) real time is that you can't look into the future why is that so? Why cant it look into the future by say extrapolation? – GENIVI-LEARNER Mar 24 '20 at 16:11
• @GENIVI-LEARNER Sure you can! It's just that linear extrapolation techniques are just another filter anyway.. so you might as well just design the filter. Even then, it's "extrapolating to estimate the future data" not "having the future data". – Peter K. Mar 24 '20 at 18:52
• @PeterK. This makes sense. So essentially we can never have any "future data" right? Then why especially emphasis it in the answer? – GENIVI-LEARNER Mar 24 '20 at 20:15
• @GENIVI-LEARNER Well, there are places where you're effectively doing non-causal filtering, but it's not done in real-time. THe image processing example is the simplest to see: there, the "time" axis is really the $x$ or $y$ axis in the image. The file-on-disk example above also applies: you already have all the data you're going to get, so the filtering operation you're doing can use all of it. Some of it just happens to be "in the future" from your current index into the file. – Peter K. Mar 24 '20 at 20:25