[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: Output Delay Margin
- Subject: Re: Output Delay Margin
- From: Leif Asbrink <sm5bsz.com; leif@xxxxxxxxxxxxxxxx>
- Date: Sun, 30 Dec 2007 14:44:43 +0100
> I am having some trouble understanding this parameter!
> I understand Amplitude Margins, and how to check them with 'A'.
> But what is the effect of setting a Margin in advance?
> There are examples on Leif's website where the Output Delay Margin is
> set to zero,
> yet there is non-zero delay in the output processing.
> So what exactly does it all mean?
Linrad assumes that the input and output are asynchronous.
Therefore linrad has a float variable that controls the
fractional resampling required to bring the output
rate to fit the output soundcard. This means that data
will be delivered in the correct speed on the average.
The computer will hovever add a random delay that depends on
other processes that the CPU might have to handle. Also the
internal processes of Linrad could cause random delays. Things
like redrawing the waterfall can be rather cpu heavy on some
architectures for example. In all, it is not possible to have
a precise delivery of data to the output, it has to be delivered
to the output buffer some time in advance. The Output Delay
is the delay from input to output. The margin is an extra delay
that linrad inserts. In case it is too small, there will be
occasional errors on the output side.
> Leif has written that setting a small value for this parameter will
> yield a small processing delay.
> I don't understand how this works.
When you click on a signal, linrad starts the processing (using
old data when available) When the time delay from the input to
the output equals the expected delay through Linrad PLUS the
Output Delay Margin, the sending of data to the soundcard
output starts. Data is dumped or more input is waited for until
output is started. With enough buffer memory allocated for
fft2 (or fft1) the output will start immediately even if the
processing delay is 10 seconds (optimum for CW EME)
> He has also said that if D/A Min (press 'T' for Timing) falls to zero,
> then the Output Delay Margin is set too small.
> My D/A Min always falls to zero before the baseband waterfall is
> completely filled,
OK. That is an error. You should be able to observe small gaps
in the output.
You are using Windows, I have no experience with that and I do not
know the reason for this problem. It could be something internal
in Linrad, but it could also be something in Windows that decides
that the computation from old data which should take 100% of available
cpu (while leaving time slots for input and output threads) makes
Linrad too heavy so the sheduler decides that some important task
of Windows itself must have priority over Linrad.
> irrespective of the value I use for the Output Delay Margin (25 to
Try 2000 ms. The margin you should see then would indicate how much
smaller than 2000 ms you can make the margin without ever reaching
Another thing. Windows will silently do rate conversions for you.
I have no reason to believe they are optimized for an application
like Linrad. Try to find out what the native capacity of your
soundcard is. If it is 48 kHz, try to select that for the output,
but be aware that this is very inefficient in Linrad so cpu load
will increase. (But not at the critical point in time before
You received this message because you are subscribed to the Google Groups "Linrad" group.
To post to this group, send email to linrad@xxxxxxxxxxxxxxxx
To unsubscribe from this group, send email to linrad-unsubscribe@xxxxxxxxxxxxxxxx
For more options, visit this group at http://groups.google.com/group/linrad