1
$\begingroup$

According to this post:

In discrete-time systems, causality is a requirement only when processing (filtering) signals in real time; i.e. when the index nn corresponds to a physical time n×Tsn×Ts. In this case, a non-causal system is impossible to implement since calculating the current output would require inputs from a future time.

In practice, however, many systems are not real time.

Image processing, for example, has indexes for horizontal and vertical coordinates. So it's OK to apply a non causal filter to an image (usual examples being 0-centered FIR filters for blurring or sharpening, or IIR filters applied in both directions to obtain 0 phase distorsion).

In time sequences, many times the signal is stored and then processed in non real time, so you may apply non-causal filters there also.

I like to know is there any new scientific theory which could yield to making none causal FIR Filters in the real world. Like quantum theory in physics or other scientific fields?

Thanks for your attention.

$\endgroup$
  • $\begingroup$ Can I please ask if this was resolved? $\endgroup$ – A_A Jan 24 at 15:51
2
$\begingroup$

is there any new scientific theory which could yield to making none causal FIR Filters in the real world?

No. If anything, scientific theories seem to be challenging determinism itself, which is what could allow you to peer ahead in the future. The key here is the last phrase of that quote ("...many times the signal is stored and then processed...").

If you already had acces to the true $x[n+1]$ at the level of observation of a signal, why not use a causal filter anyway? What is so special about $x[n+1]$?

For instance, take a very simple finite difference filter. You can definitely express it as:

$$ y[n] = x[n+1] - x[n]$$

But you would not be able to apply it in real time. The objective here is to take the difference between two samples. If you wait for $x[n+1]$ to happen, you can simply:

$$ y[n] = x[n] - x[n-1]$$

If it was possible for this difference to work in the presence of $x[n+k]$, then $y$ could start producing some output before $x$ even begins to occur.

You can observe exactly what this would sound like in a time reversed reverb. Here is an example of that.

To try this yourself, load a sound in Audacity, apply "Reverse", "Reverb" and finally "Reverse" again, before hitting "Play".

In reverberation, present samples bear some resemblance to past samples. If you stand at the far end of a large room, sounds from sources with a direct line-of-sight to your ears reach you much faster than sounds that have to bounce off of the walls. The sounds that bounce off of the walls travel a longer distance and therefore reach you later. This is what is causing the time difference of different reflections in reverberation.

By reversing the sound clip, you make the current sample to bear resemblance to its future values, thus starting to hear reflections of an event that has not yet happen.

This is only possible with signals that are stored.

Hope this helps.

| improve this answer | |
$\endgroup$
2
$\begingroup$

In discrete-time systems, causality is a requirement only when processing (filtering) signals in real time;

Too long for a comment:

In practice this is overstating the importance of "causality". Almost all non-causal filters can be made "causal enough" by cascading it with a sufficiently long delay. That increases the overall latency but it doesn't per se break the real time requirement. So as long as you stay inside your application's latency requirements you can typically use non-causal filter just fine.

| improve this answer | |
$\endgroup$
  • $\begingroup$ But then such a filter is no longer non-causal; it has been, by definition, made causal. You certainly can't do something like that inside a control loop; delay is death to stability. That's why controllers tend to have simple IIR transfer functions. $\endgroup$ – TimWescott Dec 23 '19 at 20:05
1
$\begingroup$

is there any new scientific theory which could yield to making none causal FIR Filters in the real world?

Non-causal systems are, pretty much by definition, systems that can look into the future. In order to realize one, we'd have to have a way of controlling some flow of information from some point in the future to now.

In other words, "non-causal filter" = "time machine". The standing signal-processing joke is that if you can build a non-causal filter you shouldn't tell your boss: you should quietly quit your job and use it to play the stock market.

Einstein's theory of special relativity pretty much rules out time travel; it's pretty accurate to say that it's not possible with ordinary physics

There are long-standing solutions to Einstein's equations that indicate that it is possible to transmit energy (and, hence, information and matter) across time (e.g., most wormhole solutions can be constructed to make a "time machine"). But to the extent that anyone has been able to solve the math such wormholes are unstable or require negative energy to construct and/or maintain. Since negative energy doesn't seem to exist here in the real universe, we're left with our current boring old arrow of time.

So -- probably not. But if you figure it out, you could probably make money day trading.

| improve this answer | |
$\endgroup$

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.