DSPRelated.com
Forums

DSP technique to estimate the amplitude of the signal

Started by praveen July 17, 2003
Hello,

I wanted to find the amplitude of the frequency component using
digital signal processing techniques. The signal contains frequency
component dc, f0, f1 and f2 with noise signal. I am required to find
the amplitude of the signal f0. What all-different techniques
available to find the amplitude and to what accuracy can I determine
the amplitude. The SNR of the signal is about 60 dB. I know complex
demodulation method of finding the amplitude. Is there any other
better method than this?
What all-different methods to reduce the effect of noise in the signal
(DSP)because noise effect the accuracy to which I can estimate the
amplitude.


Waiting for reply
With regards
praveen
praveen wrote:
> > Hello, > > I wanted to find the amplitude of the frequency component using > digital signal processing techniques. The signal contains frequency > component dc, f0, f1 and f2 with noise signal. I am required to find > the amplitude of the signal f0. What all-different techniques > available to find the amplitude and to what accuracy can I determine > the amplitude. The SNR of the signal is about 60 dB. I know complex > demodulation method of finding the amplitude. Is there any other > better method than this? > What all-different methods to reduce the effect of noise in the signal > (DSP)because noise effect the accuracy to which I can estimate the > amplitude.
If f0 is known, you can find it to what ever accuracy you need with the Goertzel transform (Google is your friend). -- Jim Thomas Principal Applications Engineer Bittware, Inc jthomas@bittware.com http://www.bittware.com (703) 779-7770 Air conditioning may have destroyed the ozone layer - but it's been worth it!
Hello Jim,
But i don't know the exact freqency of f0 i.e if f0 is 200kHz then it
will be anywhere between 195 to 205 kHz.

waiting for reply
praveen
praveen wrote:
> > Hello Jim, > But i don't know the exact freqency of f0 i.e if f0 is 200kHz then it > will be anywhere between 195 to 205 kHz. > > waiting for reply > praveen
Set up a bandpass filter that cuts off outside those limits, and you will find that the filter removes most of the noise and none of the signal. If the filter is adaptive, narrowing on the signal once it's frequency is detected, even more of the noise can be rejected, but it's not likely that you'll need that. If the noise is wideband, say from DC to 1 KHz, and you allow only a 10 Hz bandpass, that's already a 100:1 (20 dB) improvement of S/N. Use an adaptive filter only in the unlikely event you need better. In the time it takes for the filter to adapt, you could average the absolute magnitudes of many peaks, achieving similar gain. If the sampling rate isn't high enough to ensure that samples in each half cycle are near the peak, you could interpolate, but the simpler way will be a Goertzel analysis if as many samples as there is time for. Jerry -- Engineering is the art of making what you want from things you can get. �����������������������������������������������������������������������
On Fri, 18 Jul 2003 04:48:53 -0700, praveen wrote:
> But i don't know the exact freqency of f0 i.e if f0 is 200kHz then it > will be anywhere between 195 to 205 kHz.
There are many techniques for determining the parameters of an unknown sinusoid. For an overview, check out http://www.itee.uq.edu.au/~kootsoop/comparison-t.pdf You may need to bandpass out f_0, and then use one of the techniques, but I think some of the techniques may be able to handle the other frequency components. Without knowing anything else, I would suggest starting with the Quinn-Fernandes algorithm since it works well, and is rather easy to implement. This techniques is basically an adaptive IIR filter, so I think it may with without pre-filtering the data. -- Matthew Donadio (m.p.donadio@ieee.org)
I think the simplest way is:
FFT , to zero all points except near f0, inverse FFT, simple maximum;
accuracy - only reject f1&f2.
I am beginner for DSP, if my way is wrong - there is very useful the
opinion of hi profi.
Best regards
Victor
Vic wrote:
> > I think the simplest way is: > FFT , to zero all points except near f0, inverse FFT, simple maximum; > accuracy - only reject f1&f2. > I am beginner for DSP, if my way is wrong - there is very useful the > opinion of hi profi. > Best regards > Victor
Setting FT frequencies to zero is not a good way to filter. It makes a lot of artifacts. Jerry -- Engineering is the art of making what you want from things you can get. �����������������������������������������������������������������������
If you set single isolated frequencies to zero, you get artifacts.  If you 
include spectral shaping near those single isolated frequencies that appear to 
be like filtering, then things will work just fine.  Filtering in the 
frequency domain works if you use a frequency domain weighting function that 
is the Fourier transform of the time domain filter.  The frequency domain 
weighting function can be fairly crude away from the frequency of interest.

In article <3F1C7E3F.59E9E069@ieee.org>, Jerry Avins <jya@ieee.org> wrote:
>Vic wrote: >> >> I think the simplest way is: >> FFT , to zero all points except near f0, inverse FFT, simple maximum; >> accuracy - only reject f1&f2. >> I am beginner for DSP, if my way is wrong - there is very useful the >> opinion of hi profi. >> Best regards >> Victor > >Setting FT frequencies to zero is not a good way to filter. It makes a >lot of artifacts. > >Jerry
"George W. Bush" wrote:
> > If you set single isolated frequencies to zero, you get artifacts. If you > include spectral shaping near those single isolated frequencies that appear to > be like filtering, then things will work just fine. Filtering in the > frequency domain works if you use a frequency domain weighting function that > is the Fourier transform of the time domain filter. The frequency domain > weighting function can be fairly crude away from the frequency of interest. >
It's easy to believe that you can make a brick-wall filter by zeroing a range of bins, then inverse transforming. It doesn't work. You need more "sophistication" than that. Jerry -- Engineering is the art of making what you want from things you can get. &#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;
On Sun, 03 Aug 2003 16:15:58 -0400, Jerry Avins <jya@ieee.org> wrote:

>"George W. Bush" wrote: >> >> If you set single isolated frequencies to zero, you get artifacts. If you >> include spectral shaping near those single isolated frequencies that appear to >> be like filtering, then things will work just fine. Filtering in the >> frequency domain works if you use a frequency domain weighting function that >> is the Fourier transform of the time domain filter. The frequency domain >> weighting function can be fairly crude away from the frequency of interest. >> >It's easy to believe that you can make a brick-wall filter by zeroing a >range of bins, then inverse transforming. It doesn't work. You need more >"sophistication" than that. >
Yep, the walls of the brick-wall filter need a gradual slope. The hard part if finding the optimum slope and, as far as I know, there are no explicit equations for finding the optimum. I think the only way to find the optimum slope is to try all possible slopes and see which is best (an "optimization process"). [-Rick-]