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
DSP technique to estimate the amplitude of the signal
Started by ●July 17, 2003
Reply by ●July 17, 20032003-07-17
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!
Reply by ●July 18, 20032003-07-18
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
Reply by ●July 18, 20032003-07-18
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 > praveenSet 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. �����������������������������������������������������������������������
Reply by ●July 18, 20032003-07-18
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)
Reply by ●July 21, 20032003-07-21
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
Reply by ●July 21, 20032003-07-21
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 > VictorSetting 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. �����������������������������������������������������������������������
Reply by ●August 3, 20032003-08-03
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
Reply by ●August 3, 20032003-08-03
"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. �����������������������������������������������������������������������
Reply by ●August 5, 20032003-08-05
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-]






