I am trying to remove a motion artifact (and its harmonics) from my EMG signal, and I am facing 2 problems.
1) I have been using Pwelch (and CPSD) to get the freq. spectrum. When I took the FFT of the same signal I noticed that the powers are different from what Pwelch (or CPSD) gives. I know this is a dummy question, but why are the powers of freq. different for FFT vs. Pwelch?
2) I need to remove specific frequencies from the spectrum and then reconstruct the signal. I am currently taking the FFT, then making the power of the undesirable freqs equal "0", and then taking the ifft. Is this a proper method, if not what other ways can this be done?
Thanks,
Milad
Pwelch is a spectrum estimator. It computes an averaged squared
magnitude of the Fourier
transform of a signal. In short, it computes a set of smaller FFTs
(using sliding windows),
computes the magnitude square of each, and averages them.
Also, note the display default for Pwelch is in dB (logarithmic).
>
> 2) I need to remove specific frequencies from the spectrum and then reconstruct the signal. I am currently taking the FFT, then making the power of the undesirable freqs equal "0", and then taking the ifft. Is this a proper method, if not what other ways can this be done?
Notch filter, comb filter, etc.
>
> Thanks,
> Milad
Thanks for the help on the Pwelch concept.
I read a paper from Fratini [2008] JEKM which used notch filters too. I'm just a little skeptical since I want to reconstruct the signal, and worried that notch filtering will change the EMG signal too too much, compared to removing specific freqs.
Thanks again though,
Milad
When you remove those freqs, you must be sure to also remove the power
at the corresponding negative freq, ie if you zero at index i, then
you must also zero at N+2-i, where N is the no of data.
You really should post this on comp.dsp.
It depends on the relative bandwidths of your desired signal and the
interfering
signal. Notch filter, zero-ing specific frequencies, all are filter-
based techniques.
Notch filters can be made very narrow. FFT-based techniques are
limited by
the frequency-domain resolution that you have access to. Regardless,
filter-
based techniques affect both the good and the bad parts of the
signal.
There are also noise cancellation techniques that estimate the noise
signal
and then subtract it off the received signal. They can better
preserve the good
parts of the signal, but you need to be able to estimate the noise
signal
sufficiently accurately.
Julius
Because the DFT and Welch methods are different tools that
do fdifferent jobs for different purposes.
The DFT just shifts signal representation from one basis to
another, and ought to have preserved the norm, were it not
for established practice and some computational issues. The
signal can be reconstructed frm the DFT domain back to
time domain by using an inverse DFT.
Welch's method is a power spectrum estimation method.
This means first of all that the computed result is
a power spectrum, not a 'raw' spectrum, which in turns
means that you can not reconstruct the signal. Second,
Welch's method uses a variety of computational tricks
to come up with 'good' PSD estimates, whic mean that
the results might not be directly comparable with the
output of the DFT.
> 2) I need to remove specific frequencies from the spectrum and then reconstruct the signal. I am currently taking the FFT, then making the power of the undesirable freqs equal "0", and then taking the ifft. Is this a proper method, if not what other ways can this be done?
This is the naive way every data analysis neophyte try
first.
If you have any interest in the end data, use filters.
Details depend a bit on specifics, but try notch or
comb filters.
Rune