Need computationally fast approximation to standard deviation.
ProgrammingThis forum is for all programming questions.
The question does not have to be directly related to Linux and any language is fair game.
Notices
Welcome to LinuxQuestions.org, a friendly and active Linux Community.
You are currently viewing LQ as a guest. By joining our community you will have the ability to post topics, receive our newsletter, use the advanced search, subscribe to threads and access many other special features. Registration is quick, simple and absolutely free. Join our community today!
Note that registered members see fewer ads, and ContentLink is completely disabled once you log in.
If you have any problems with the registration process or your account login, please contact us. If you need to reset your password, click here.
Having a problem logging in? Please visit this page to clear all LQ-related cookies.
Get a virtual cloud desktop with the Linux distro that you want in less than five minutes with Shells! With over 10 pre-installed distros to choose from, the worry-free installation life is here! Whether you are a digital nomad or just looking for flexibility, Shells can put your Linux machine on the device that you want to use.
Exclusive for LQ members, get up to 45% off per month. Click here for more info.
Distribution: Debian /Jessie/Stretch/Sid, Linux Mint DE
Posts: 5,195
Rep:
Quote:
Originally Posted by jiml8
How delightfully primitive!
Cool
I never liked programs which use processor capacity like it comes for free, most often I write programs as if they have to run on a 10 MHz AT.
There might be some more optimizing possible, but that is a tradeoff between processor time and memory usage. You could reduce the number of table entries by performing linear interpolation, but at the cost of two additions and a division.
Are sure you need a range from -90 dB to +30 dB? I guess you get the digitized signal from the receiver after the AGC. Isn't the dynamic range after the AGC limited to 30 dB or so? That is more or less inherent to the S/N of 10-12 dB you have. Add another 20 dB for the co-channel interferer and you are in that range.
Looking forward to see if your project succeeds succesfully
I keep looking at that, and I would love to do it.
But at this point it is not at all obvious to me that I can do it so I am continuing with floating point.
So, what you're saying is that your range of values isn't easily contained within 16 or 32 bit integer form.
Another thought is whether the selectivity of your samples is too fine. This will be related to the bandwidth of your narrowest signal. IOW, if you could detect a 1KHz wide signal but you will only ever get a 1MHz or wider signal, can you simplify your sampled data?
You sound like you've got all this squared away, but have you perused any of the amateur radio programs; especially those related to PSK or Olivia? Your task is similar in that you need to get a "1" if there is data and a "0" if not. (I suppose now you're going to tell me that you were one of the developers of Olivia. )
Are sure you need a range from -90 dB to +30 dB? I guess you get the digitized signal from the receiver after the AGC. Isn't the dynamic range after the AGC limited to 30 dB or so? That is more or less inherent to the S/N of 10-12 dB you have. Add another 20 dB for the co-channel interferer and you are in that range.
The range I specify is -90 to -30, not +30. What I am sure of is that this range will cover me like a blanket. At a later time, I might consider making things smarter and recompute the range based upon what I am really encountering.
So, what you're saying is that your range of values isn't easily contained within 16 or 32 bit integer form.
Another thought is whether the selectivity of your samples is too fine. This will be related to the bandwidth of your narrowest signal. IOW, if you could detect a 1KHz wide signal but you will only ever get a 1MHz or wider signal, can you simplify your sampled data?
You sound like you've got all this squared away, but have you perused any of the amateur radio programs; especially those related to PSK or Olivia? Your task is similar in that you need to get a "1" if there is data and a "0" if not. (I suppose now you're going to tell me that you were one of the developers of Olivia. )
Actually, I have some doubles floating around in my computations. 64 bit. Very expensive.
I actually would like to get my selectivity down to a finer level than I can currently manage with the DSP. It is adequate at the present time, but I could indeed stand some better discrimination. There are several tradeoffs there, though, and what I have will work well enough.
My client and I have had discussions on coarsening resolution in certain circumstances since that would act as a sort of filter, and I have built the capability into the system, but there are implications. In the future I will explore this, but not now.
I only mention it because of the article in the Dec 08 issue of QST. Quote: "The waterfall still did not show any signal at all --- but the characters kept appearing!". That implies an incredible piece of work with DSP. Or at least it does to me.
Jim, at one time comp.dsp used to be a good place to go for help. It's been so long since I had the bug that I don't know what's going on there anymore.
I only mention it because of the article in the Dec 08 issue of QST. Quote: "The waterfall still did not show any signal at all --- but the characters kept appearing!". That implies an incredible piece of work with DSP. Or at least it does to me.
Yeah, if I have some a priori information about the signal, and a match filter, I'll pull it out too.
But that is not what I am doing here; I am not interested at this time in the information buried in the signal. I am only interested in the existence of the signal. That is a very different problem.
LinuxQuestions.org is looking for people interested in writing
Editorials, Articles, Reviews, and more. If you'd like to contribute
content, let us know.