EE rant

Jan 02, 2023 Last reply: 3 years ago 268 Replies

The Great EE Winter after/during the 1990s had real teeth.

A former R&D director ( they flushed the whole department ) to whom I was a direct report tried that. It didn't work. He got out with his skin. Part of that was customers drying up to be fair.

Maker kids aren't disciplined enough. They lack the will.

I had to explain comparators to one at work. He also failed on a power budget calculation that created significant disarray.

The local land grant U sends all EE grads to defense contractors in an adjoining state where they shuffle papers. Only consulting PhDs do any actual work, er, exploit their grad students to do real work.

Oh, and "GOT ML?" Sheesh. Learn regressions fercryin.

They're software engineers, not programmers.

Welcome to the future. Er, present:

formatting link
Oh, the joy....

Well, let's see. Put your left hand in your pocket. Now put your finger there....

#include <fftw3.h>

There. Done.

The thing to know is epistemology - how do you know what you think you know? They don't really teach that so much. It's a fancy word for a simple thing. Just check. A lot. Leave guardband.

Are combinators high level math? They're required for software , especially validation unless you like crawling around installs looking for bugs.

Nowdays it's often a wash. The FFT will be some slower but not by much, certainly not seconds unless you're in millions of samples. Even then... Weird.

There are VST plugins for audio-DAW programs that convolve thousandsish sample impulse responses in 1% CPU utilization of a modern processor. Maybe even tens of thousands.

Depends on the signals. Using C/C++ and a modern toolchain, setting all failures of isnormal(i) and isnormal (q) to zero in a complex division routine takes care of it.

For audio, you ain't gonna need that even. The tone signal and end signal will be too similar. You're just after the basis of a long FIR filter anyway.

It's different if there's noise but the filtering to get around that is pretty straight up. It's usually an LPF.

Recording a single sample pulse thru the device is cheating :) These guys call it "Singular Value Decomposition"

formatting link
( I keed; there's more to it than that but the single pulse is a good start ).

That's true if you want to do it wrong. It's actually applied constraint theory and taken that way, life loses a lot of stress.

Agreed that this isn't all that difficult but it still seems rare among coders. Don't care; it's a relatively simple way to make a living and can be quite fun. Just show and don't tell.

??? I find catalogs more than intimidating enough. Perhaps "infuriating" is a better word. Trying to reverse engineer the data sheets alone is no fun at all. Plus, you have to have a place to put all the stuff.

<snip>

Joe Gwinn wrote: <snip>

Bizarre. And probably true. A significant fraction of CS is in Djikstra's work on semaphores and the other stuff so related.

It's the one unavoidable topic unless you're purely in pure cooperative systems and there are no interrupts.

I think real time software is more akin to clockmaking anyway.

<snip>

I taught one the very lowest level basics of document management a few months back. He'll go far. He declined to learn C++ but is a hand at MATLAB. He won't need it; he's already in a governance- design position.

<snip>

Martin Brown wrote: <snip>

Going towards "checklists of constraints" goes a lot faster ( meaning is orders of magnitudes cheaper ) and is therefore more Useful than "provably correct". Constraints are suspiciously binary things and we're pretty good with lists of those.

The rest is instrumentation.

Maybe in a generation or two we'll see Hoarse style proofs. We'll see. They're nibbling about the edges now but so much in language design is just promoting the bloody thing.

Bollocks. An FFT is an information-preserving operation, unlike least-squares fits.

Right, i.e. it's not a least-squares fit, it's exact.

You're maybe thinking of a continuous-time orthonormal-function expansion, e.g. a Fourier or Bessel or Chebyshev series. In that case, _truncating_ the series leads to the least-squares optimum for that order. Least squares optima tend not to be that useful--the infamous "Gibbs phenomenon" being a typical example.

But there are a lot, a lot of ways of producing a finite expansion that don't have that problem, just as there are all sorts of ways of controlling noise gain in deconvolution.

Dividing by an inverse function is precisely a weighting operation.

What makes that the One True Algorithm? Why assume that all frequencies have to have the same SNR? That's not at all common in real life, and it's often a win to sacrifice a significant amount of SNR for improved resolution, data rate, or what have you. It's horses for courses.

And none of that has anything to do with how you perform the actual deconvolution.

Cheers

Phil Hobbs

No, it IS BOTH a least-squares fit, and an exact one.

Not true unless the 'inverse function' is real nonnegative numbers (i.e. statistical weights). That deconvolution division is complex.

The theorem that least-sum-of-squared-difference is best, is (see Matthews and Walker for the full treatment) easily derived by assuming a Gaussian noise profile.

The FFT algorithm DOES assume the same noise level, OR is an incorrect fit in the minimum-least-squares sense. You cannot call a mechanical FFT any reasonable least-squares fit in other cases. Being invertible, the hash it makes of mixing noise in the forward transform fails to show up in a simple-inversion reverse transform, but it IS a statistical error to do it thus.

The problem does not follow S/N ratio arguments, only absolute noise estimates on a per-sample basis.

Unless it does... and there's a good argument for slow-transform calculation here.

So what? Your weighting function isn't allowed to have a phase angle? Mine is. ;)

Soooo, exactly why is it best? Name dropping isn't an argument.

Listen, man, the FFT just takes a finite-length sampled function and transforms it to and from the discrete frequency domain. In itself, it has nothing to do with fitting, or least squares, or noise, or anything else. You can build fitting, or filtering, or lots of kinds of operations by using FFTs down in the guts someplace, but that ain't anything FFT-specific.

Show me. It sounds like you haven't implemented a correct signal processing scheme of that sort, at least not recently. If you don't account for the effects of the finite length of the transform, specifically overlap errors due to failing to zero-pad, you'll wind up with nonsense. But that isn't the FFT's fault.

I don't know if you have a copy of my book, but a major emphasis of Chapter 17 on DSP is how to do DSP and still preserve the continuous-time notions of bandwidth, SNR, and so on in the process.

But you're insisting that there's One True Algorithm for everything, and that's nonsense.

I'd be interested to hear it.

Cheers

Phil Hobbs

If you don't have the book, it goes like this: when each data point D_i(t) has associated a Gaussian error distribution (exp(-s^2 /(sigma^2)), then the most likely fit of a function to the data is that which maximizes the joint probability given by the product over "i" of (exp(-(D_i - F_i)^2/(sigma_i^2)). Maximizing the product of an exponential is the same as maximizing the sum of those negative squared deviations. So, least-squares fitting with a statistical weight to each square of 1/(sigma_i^2) is correct to all orders in error with that Gaussian character. By the central limit theorem, we know Gaussian noise is often to be expected. And, with small noise, the other higher-order error distribution elements (cubic = skew, quartic = curtosis, etc.) will never dominate, but the lowest order (square-law deviation sigma) does. That means other-than-Gaussian noise, if small, has the same exact-solution as the the Gaussian.

... Yeah, it does encourage the user to toss his error estimate into the bit bucket and just proceed without noise-statistics anywhere in mind. That's not because it's a good solution, it's because it is a procedural error for anyone analyzing term-by-term noise character of data.

False. The discrete FFT is exactly a matrix; there aren't any ways to implement weighted coefficients in that matrix operation, because there's no statistical-weight input. You need to know that sigma-squared is sometimes big after the division-by-zero step, but the FFT algorithm throws that knowledge away. That encourages nonsense results.

That woulkd be more cost for less profit.

On a sunny day (Thu, 5 Jan 2023 13:41:11 -0800) it happened Joerg snipped-for-privacy@analogconsultants.com wrote in snipped-for-privacy@mid.individual.net>:

Oh no! I have a steerable satellite dish and get a thousand or so free to air channels So many satellites I can point to (see top page) here:

formatting link
and opinions from all over the world, movies in HD... science (NASA TV for example) many great info channels in German (ZDF-info, Kabeleins-info, N24docu etc It is good to see the viewpoints from other countries to get a grip on the truth pity EU killed the Russian channels on Astra satellite US brainwash not missing: CNN, financial... There is also internet via satellite...

And of course as ham we have QO100 here... DVB-S2, SSB, clear as glass all over Europe and middle east etc

formatting link
I still have a PC with an old DVB-S card, wrote the positioner software too:
formatting link
Not very active as ham these days, dish high up against the wall here, bad weather.. but maybe when its summer again could climb the ladder..

A decent sat receiver box that can also drive a dish positioner costs about 30 $. You can build your own transmitter stuff ..

Digital terrestrial seems to work here OK now even with a simple indoor antenna.

I just check these in the morning:

formatting link
formatting link
anything seems interesting then I program a timer (good movies for example) Box records to a 64 GB USB stick in HD....

Analog? You mean wallwart noise on RF shortwave? brrrrrrrrr I do have a HF transceiver, and a Baofeng of course.... Maybe when WW3 is in progress to say bye bye world? Or listen where there is still life?

On a sunny day (Thu, 5 Jan 2023 12:15:29 -0500) it happened Phil Hobbs snipped-for-privacy@electrooptical.net wrote in snipped-for-privacy@electrooptical.net:

In a Le Sage type field 'attractive' is just a shadow effect, very simple.

formatting link
's_theory_of_gravitation mamaticians :-(

Jan imagines that he has got some kind of grip on some kind of truth.

It is a trifle comic.

<snip>

The devil as ever is in the details. Accurate simulation of the DFT of a time series of finite extent using an FFT requires some cunning. Most EE texts I have seen over the years are a long way off state of the art.

Modern deconvolution techniques use some linear combination of search directions and blur a trial image to match the constraints provided by the observations to within the noise. In astronomy the fact that most of the sky is black is a very powerful constraint.

What you have to give up to get super resolution is that the resulting image resolution is dependent on local signal to noise. Bright objects are much sharper than dim ones. Overfit and you can get peak splitting.

Once you start dividing FFT's you tend to end up with negative artefacts and they are very difficult to eliminate once they appear. It might still be a good enough solution (and it is certainly faster). Constrained least squares using the second derivate worked pretty well.

And artefacts introduced by the implicit boundary periodicity inherent in taking an FFT of a finite chunk of data.

There are even two FFT conventions which each have their merits. FFT of ABCD can mean either:

Dirichlet Boundary condition (specified value) Classical translation FFT(Cambridge, VLA) implies ABCDABCDABCD

Neumann Boundary Condition (specified gradient = 0) Reflection (cosine) FFT(Jodrell Bank) implies DCBAABCDDCBA

The latter has some boundary continuity advantages but very different aliasing characteristics. All high precision practical implementations use some form of zero padding, source domain compact support convolution and frequency domain multiplicative correction with throw away guard bands. That method can get answers very close to the true DFT.

Join the Discussion

Have something to add? Share your thoughts — no account required.

Didn't find your answer?

Ask the community — no account required