Burg spectral estimation

Hi,

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)

Dipl.-Ing. Martin B.
Research Associate

Kaiserstraße 12
Building 05.01
76131 Karlsruhe

Phone: +49 721 608-3790
Fax: +49 721 608-6071
www.cel.kit.edu

KIT – University of the State of Baden-Württemberg and
National Laboratory of the Helmholtz Association

On 03/26/2010 07:05 AM, Martin B. 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.

Thanks for doing this, and especially for releasing it and making a
detailed page on CGRAN. I know this will be of general interest.

Matt

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!

Again, thanks for sharing.

Brian

Hi Brian,

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.

Best regards,
Jens

Hi Bob,

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?
:).

Jens

Jens:

Have you considered and rejected Pisarenko estimtion techniques or just
not
tried them yet?

Thank you for your efforts
Bob

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)

Dipl.-Ing. Martin B.
Research Associate

Kaiserstraße 12
Building 05.01
76131 Karlsruhe

Phone: +49 721 608-3790
Fax: +49 721 608-6071
www.cel.kit.edu

KIT – University of the State of Baden-Württemberg and
National Laboratory of the Helmholtz Association

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)

Dipl.-Ing. Martin B.
Research Associate

Kaiserstraße 12
Building 05.01
76131 Karlsruhe

Phone: +49 721 608-3790
Fax: +49 721 608-6071
www.cel.kit.edu

KIT – University of the State of Baden-Württemberg and
National Laboratory of the Helmholtz Association

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)

Dipl.-Ing. Martin B.
Research Associate

Kaiserstraße 12
Building 05.01
76131 Karlsruhe

Phone: +49 721 608-3790
Fax: +49 721 608-6071
www.cel.kit.edu

KIT – University of the State of Baden-Württemberg and
National Laboratory of the Helmholtz Association

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