[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[linrad] The Linrad filter
The filter in Linrad, the yellow curve that is drawn in the
baseband graph (the graph with a green dB scale) can be set
in ways that make Linrad behave unexpected to newcomers.
The reason is that Linrad has no prejudice - it does not know
what you actually want to do.
The Linrad code is deliberately written to allow various
interesting things that are not compatible with normal receiver
operation. If you select a filter with a bandwidth of 60 Hz
and make the passband 600 pixels wide, the separation between
two pixels will be 0.1 Hz. There is nothing wrong with that if
you are doing some kind of measurement but since each yellow
dot corresponds to a FFT frequency bin, it follows you have
only 0.1 Hz between the bins which means that Linrad will have
a delay in the baseband of 10 seconds because it has to collect
all the data points for an FFT before starting to compute the filter.
The filter will of course be extremely rectangular (if you wish)
600 points with amplitude 60 Hz with constant level and infinite
attenuation 0.3 Hz or so outside the flat region.
What you should do when using Linrad as a radio receiver is to
make the window narrower and use the arrow keys in the upper
left corner to place the yellow pixels further apart until
your filter is represented by a reasonable number of pixels.
It is enough to have four to eight points on the flat part of
the filter. For a 60 Hz filter the frequency bins will then
be something like 8 Hz apart which means that the delay will
be about 0.15 seconds.
There is one more thing to observe with the baseband filter.
If you select a wide filter, say 3 kHz, Linrad will select a
sampling speed that is a bit above 3 kHz to accomodate the signal.
Sampling rates come in factors of two, with a bandwidth of 1 kHz
the baseband will be sampled at typically 12 kHz.
It means that one second of data will occupy a memory of typically
12000*2*4=96 kilobytes to store I and Q of the baseband signal.
If you select a storage time of 200 seconds it means that the
baseband memory will be about 20 megabytes for the baseband I and Q
if 200 seconds were allocated. Sizes come in factors of two
however so you may get close to 40 megabytes for one array.
Linrad will store many more arrays, the total allocation
will be about 400 megabytes in this case. This may lead to
several problems. If your computer does not have enough memory,
part of the arrays will be placed on the hard disk with overrun errors
as a result. If you tell Linrad to use memory locking, storage
times will be reduced so you can have everything in memory, but
the memory locking takes time so if you change the filter beyond
the point where a different baseband sampling speed will be used,
you will get an overrun error with the error code . This is
harmless, but could be confusing.
The reason for allowing a long baseband storage time and to have so many
arrays for the baseband is that Linrad currently has several things
that aim for clever decoding of Morse code. The long times are for
auto correllation (coherent averaging) and during development many
things are done that will be removed once things work as intended.
When applied to slow speed CW signals at bandwidths below 20 Hz,
long times are no problem. When applied to high speed meteor scatter
there will be no reason to use long times. At the present time
when Mores decoding is not yet working, long storage times are useful
only if you want to use long averaging times for high resolution baseband
spectra. This could be interesting when Linrad is used as a signal analysis
tool, but not in normal communication. The baseband waterfall will
contain the information in a format that suits operational needs.
For normal operation, just set a short baseband storage time.
(minimum is 9 seconds). Use memory locking when you do your first
test runs, when you have learned the limits of your computer
you can disable it to avoid the type 21 overrun errors.
(but mistakes may then lead to disk swapping)
If you press "X" then "B" you will see the memory allocations
printed in the main waterfall window so you can make a judgement
whether the current parameters (including the filter shape)
are reasonable for the amount of memory in your computer.
Note that there are two baseband filters. A narrow one that
is purely quadratic is also plotted with yellow pixels is
used to extract the carrier. It is used if you select coherent
processing. For a very stable signal you may want a large
coherence ratio (bandwidth ratio between the two filters.
In such cases you must allow the main filter to have more
pixels because the pixels have to be close enough to allow
a narrow enough filter for the carrier. The delay time will
of course increase correspondingly.
In case you have problems, try to find someone who has similar
hardware and has a system that works well. Ask for a complete
set of parameter files. That should give a good starting point:-)
Leif / SM5BSZ