On Tue, Jul 1, 2014 at 6:17 PM, caruiz.ext <caruiz.ext@catec.aero> wrote:
---> Delay = 1current_delay < delay ->delay of 1 sampleI insert a virtual sample (linear interpolation)I sent the next sample (2)current_delay = 1
I don't understand what this means.
---> Delay = 1current_delay = delay -> nothingI send the next sample (3)current_delay = 1
My comments:
1). I see no reason that "q", "inicio", "sample_rate" and "delay" should be defined as public class variables, rather than private.
2). You make this a general block that always consumes and returns the same value. This is similar to a sync block.
But a delay block is not a sync block.
But a delay block is not a sync block.
3). Basically what a delay block does is just to copy "input[i]" to "output[ i + delay ]", this creates an effect of delaying the signal.
You don't need to create a std::queue to perform delay.
4). The definition of "Sample" class, if it is really needed, should be placed in separate file.
5). Your always forecast 1 input item, but in general_work() you always consumes and access the input buffer as if its length is always not smaller than noutput_items.
(you forget the memory boundary) This is fatal.
6). I don't understand your attached picture.
I also don't understand your requirement.
You have written a code (delay_cola_fff) that is wrong from the ground up.
The only way to help you is to understand your requirement and suggest something else from scratch.
Unfortunately I fail to understand your requirement.
I suggest you to look into the source code of the existing "Delay" block, and start from there.
No comments:
Post a Comment