Variable Fractional Delay block takes positive delay sample, if I have negative delay sample , how it can be used.
Afficher commentaires plus anciens
For signal advance operation ie when the fractional sample value is negative it should give last samples may be zero in advance case. Please tell.
How to use vfd clock for advance case. My input is
fs=16*10^3;%sampling frequency
N=320;
T=N/fs;
timeList = 0:(1/fs):(T-1/fs);
x=sin(2 *pi * f1 * timeList);
delay_samples=-18.2;
Réponses (1)
Walter Roberson
le 16 Sep 2020
0 votes
Negative delay samples requires time travel unless the information about the wavefront is known in advance.
This is a fundamental finding of Einstein's Theory of Relativity and cannot be bypassed.
The most you can do is to create two paths for the information about the event to travel, with the "regular" path having a positive delay relative to the "fast" path. For example you could put gravitational masses in the path to bend the path of the "regular" signal so that it gets delayed relative to a path without gravitational masses. In practice you would probably instead introduce a dialectric into an electrical path, https://en.wikipedia.org/wiki/Speed_of_electricity or introduce a transparent solid into an optical path.
... Unless, that is, you already know the shape of what is to be received, in which case you could run your clock earlier.
4 commentaires
Rashi Mehrotra
le 17 Sep 2020
Walter Roberson
le 17 Sep 2020
You cannot do it, it is logically impossible.
Suppose I build a model that has a block that can advance a signal by 1 sample.
>>>>[LOGICAL NOT]----[ADVANCE 1 SAMPLE]>>++>>>>>>[scope]
^ V
+<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<+
At time T, I emit a signal. Suppose it is FALSE. But I peeked ahead by 1 sample and so knew I was going to emit a FALSE before I even knew what the input to the block was, so I took that "oracle" of what I was going to emit and deliberately emit the opposite of it instead -- so I emit TRUE instead of FALSE. But I peeked ahead by 1 sample on that and knew I was going to emit a TRUE befor I even knew what the input to the block was, and so I deliberately emit the opposite of that, so I emit FALSE instead of TRUE.
So... what am I emitting, FALSE or TRUE?? If I can predict that I am going to emit FALSE then I peek ahead and change my answer to TRUE, and if I can predict that I am going to emit TRUE then I peek ahead and change my answer to FALSE.
Therefore, the ability to peek ahead on a signal is not possible to implement, not unless you cannot peek ahead on your own output or anything that is a result of your output.
It is not for example an logical problem to monitor an input long enough to determine that it is a constant-frequency and constant amplitude sine wave, and then use that knowledge to synthesize a new signal that is that same sine wave but advanced by a number of samples. But this is not peeking ahead, this is analyzing a signal to determine its fixed characteristics, and build another signal based on those characteristics. And you if the signal changes, then you need time to adapt to it.
Rashi Mehrotra
le 17 Sep 2020
Walter Roberson
le 17 Sep 2020
Then build a new sine wave that has the required characteristics.
You can use a Math Block on your Clock signal to calculate an earlier or later time, and feed that altered time to the sine wave function block.
Catégories
En savoir plus sur Aerospace Blockset dans Centre d'aide et File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!