we’ve done some work to our ‘Spectral Estimation Toolbox’ and added
Burg’s algorithm for spectral estimation. It’s all on CGRAN, see https://www.cgran.org/wiki/SpecEst
Things aren’t 100% perfect, probably due to the high number of
multiplications numerical accuracy is sometimes a bit off when compared
to Matlab and Octave (which are quite different themselves!), but it
works nicely so far when all you want to do is estimate spectra.
One of our students rigged a demo in which a narrow-band signal was
nicely tracked by the algorithm; I’ll hopefully add that soon along with
GRC bindings.
Cheers
MB
Karlsruhe Institute of Technology (KIT)
Communications Engineering Lab (CEL)
One of our students rigged a demo in which a narrow-band signal was
nicely tracked by the algorithm; I’ll hopefully add that soon along with
GRC bindings.
Thanks for doing this, and especially for releasing it and making a
detailed page on CGRAN. I know this will be of general interest.
On Fri, Mar 26, 2010 at 10:05 AM, Martin B. [email protected]
wrote:
One of our students rigged a demo in which a narrow-band signal was
nicely tracked by the algorithm; I’ll hopefully add that soon along with
GRC bindings.
This is good stuff; thanks for sharing!
If you don’t mind, I am curious of your experience of the Burg versus
Welch implementation and results - which do you prefer? It looks like
Burg translates to frequency domain first, and Welch stays in the time
domain? Any idea how much of the bandwidth can be occupied before the
algorithms are not relatively accurate anymore? In the presence
high-noise, are the algorithms still able to detect the tones in your
current setup?
Sorry for all the questions, but this is very interesting!
algorithms are not relatively accurate anymore? In the presence
high-noise, are the algorithms still able to detect the tones in your
current setup?
Welch’s and Burg’s method are very different approaches to spectrum
estimation
and both have their pros and cons. Burg can be better if fewer samples
are available, but one has to be careful when choosing the filter order
(model complexity).
These questions are best answered in detail in the very good book by
Stoica/Moses “Spectral Analysis of Signals”, Prentice Hall, 2005.
On Fri, 26 Mar 2010 21:02:19 -0400, Robert McGwier [email protected]
wrote:
Jens:
Have you considered and rejected Pisarenko estimtion techniques or just
not
tried them yet?
The original application was narrow band interference suppression in
DSSS
systems. Burg’s
method works quite well as it automatically gives one the filter
coefficients
for the suppression filter.
Eigenspace based methods are of course very another interesting thing to
make available
in GNU Radio - if we find students willing to implement this as part of
their course work
in Karlsruhe, Martin and I will gladly support them (anyone reading
this?
:).
On Fri, Mar 26, 2010 at 01:25:41PM -0400, Brian P. wrote:
If you don’t mind, I am curious of your experience of the Burg versus
Welch implementation and results - which do you prefer? It looks like
Burg translates to frequency domain first, and Welch stays in the time
domain? Any idea how much of the bandwidth can be occupied before the
algorithms are not relatively accurate anymore? In the presence
high-noise, are the algorithms still able to detect the tones in your
current setup?
Welch is quite similar to what the GR FFT sink does, and will work with
any kind of spectral content (it is “non-parametric”). Burg needs some
a-priori knowledge of what you’re about to expect (“parametric”) and
will only operate well if your a-priori assumption reflect the
signal(s).
Actually, it estimates the filter coefficients of an AR process
(so, technically, it operates in the z-domain). The spectral estimation
output is gathered by running that result through an FFT.
In high-noise, and with little knowledge, you have no choice but use
Welch. A cool application of Burg is to track narrow-band interferers
from only a handful of samples. The pictures on https://www.cgran.org/wiki/SpecEst were made with a few thousand samples
for Welch, and only 512 samples for Burg (and way less calculations).
Cheers
MB
–
Karlsruhe Institute of Technology (KIT)
Communications Engineering Lab (CEL)
On Sat, Mar 27, 2010 at 10:12:33AM +0100, Jens E. wrote:
Have you considered and rejected Pisarenko estimtion techniques or just
not tried them yet?
Eigenspace based methods are of course very another interesting thing to
make available
in GNU Radio - if we find students willing to implement this as part of
their course work
in Karlsruhe, Martin and I will gladly support them (anyone reading this?
:).
Actually, there already has been some work in this direction, but MUSIC
et al are numerically very demanding (estimate autocorrelation matrix
AND do an eigenvalue decomposition). I’m therefore not convinced they
are massively useful for radio applications (in particular, with real
time constraints).
Something I’d like to have in the toolbox are cyclostationary spectral
estimation methods (FAM, SSCD etc), and I’m hoping to add these some
time soon (as in, this year).
Cheers,
MB
–
Karlsruhe Institute of Technology (KIT)
Communications Engineering Lab (CEL)
I just checked out the gr-specest and tried to install it but there is
no configure file. Can you post one or tell me how to get around not
having one?
Thanks
Scott Johnston
MIT Lincoln Laboratory
Martin B. wrote:
On Fri, Mar 26, 2010 at 01:25:41PM -0400, Brian P. wrote:
If you don’t mind, I am curious of your experience of the Burg versus
Welch implementation and results - which do you prefer? It looks like
Burg translates to frequency domain first, and Welch stays in the time
domain? Any idea how much of the bandwidth can be occupied before the
algorithms are not relatively accurate anymore? In the presence
high-noise, are the algorithms still able to detect the tones in your
current setup?
Welch is quite similar to what the GR FFT sink does, and will work with
any kind of spectral content (it is “non-parametric”). Burg needs some
a-priori knowledge of what you’re about to expect (“parametric”) and
will only operate well if your a-priori assumption reflect the
signal(s).
Actually, it estimates the filter coefficients of an AR process
(so, technically, it operates in the z-domain). The spectral estimation
output is gathered by running that result through an FFT.
In high-noise, and with little knowledge, you have no choice but use
Welch. A cool application of Burg is to track narrow-band interferers
from only a handful of samples. The pictures on https://www.cgran.org/wiki/SpecEst were made with a few thousand samples
for Welch, and only 512 samples for Burg (and way less calculations).
Cheers
MB
–
Karlsruhe Institute of Technology (KIT)
Communications Engineering Lab (CEL)
I found out that I had to run bootstrap, problem resolved.
Thanks
Scott Johnston
MIT Lincoln Laboratory
Scott Johnston wrote:
I just checked out the gr-specest and tried to install it but there is
no configure file. Can you post one or tell me how to get around not
having one?
Thanks
Scott Johnston
MIT Lincoln Laboratory
This forum is not affiliated to the Ruby language, Ruby on Rails framework, nor any Ruby applications discussed here.