FFT Signal Processing to Clean Up Distortion/Noise

AI Thread Summary
The discussion revolves around the challenge of cleaning up a signal h(t) that is the product of a desired signal v(t) and a low-frequency distortion/noise g(t). The initial approach suggested using FFT to filter out low frequencies, but concerns were raised about potentially removing parts of v(t) as well. A key insight was to take the logarithm of the function, transforming it into a sum that allows for effective filtering in the frequency domain. However, it was noted that the multiplication of v(t) and g(t) represents a modulation, indicating that a linear filtering approach may not fully recover v(t). Ultimately, a non-linear operation, such as demodulation, may be necessary to accurately retrieve the original signal.
singedang2
Messages
25
Reaction score
0
hello!

i'm given a signal h(t) = v(t)*g(t)
where g(t) is a distortion/noise that got added
and has a very low frequency compared to v(t)

i need to devise a method to clean up g(t)

i'm thinking of to do the fft on the signal h(t),
and remove the lower frequencies and do the inverse fft,
but this might not just remove g(t), but it may as well remove v(t)

any hints?
 
Engineering news on Phys.org
I haven't studied this in any good detail, so my answer is not going to be the best. But I think your solution is correct, and that the problem with this is a fundamental problem with removing noise. I have been searching my files because I remember reading all about this, but I can't find what I read anywhere.

I think the answer is in choosing the right method of suppressing low frequencies, for example, multiplying the Fourier transform by some function which is inversely proportional to frequency.

I wish I had this book though! By the way, is * a convolution in your notation or multiplication?
 
singedang2 said:
hello!

i'm given a signal h(t) = v(t)*g(t)
where g(t) is a distortion/noise that got added
and has a very low frequency compared to v(t)

i need to devise a method to clean up g(t)

i'm thinking of to do the fft on the signal h(t),
and remove the lower frequencies and do the inverse fft,
but this might not just remove g(t), but it may as well remove v(t)

any hints?

I have the same question as MikeyW. You say in your post that g(t) is added, but are using * as the combination symbol. If the g(t) is just added, and is lower frequency, they it seems that running h(t) through a DSP highpass filter would do what you want?
 
sorry for the confusion. it's a multiplication. by 'add' i meant the two signals got mixed altogether.
 
singedang2 said:
sorry for the confusion. it's a multiplication. by 'add' i meant the two signals got mixed altogether.

Why are they multiplied? Where is the non-linearity? Or is this just a coursework exercise? What is the context please?
 
i don't know about the non-linearity. this is for a course, and we've only learned fft and some Fourier analysis.

the questions is we're suppose to receive am radio singal, but due to atmospheric/weather condition, loudness of the signal changes.

so the original signal we wanted to receive was v(t), but instead we get v(t)*g(t),
and g(t) has relatively low frequency compared to v(t).
 
Can you double check that it's not a convolution?

If you multiply two functions v(t)g(t) would be my notation, to me v(t)*g(t) suggests convolution, especially in signal processing... is the question in original form specific about what the symbol "*" means?
 
i've checked and it's multiplication, NOT CONVOLUTION. so v(t)g(t), instead of v(t)*g(t).
sorry for the confusion.
 
i was able to solve this problem.

the key was to take log of the function.

then it becomes logv(t) + log(g(t))
then we do the usual fft then do the filtering, then do inverse fft to get back the original signal.
 
  • #10
singedang2 said:
i was able to solve this problem.

the key was to take log of the function.

then it becomes logv(t) + log(g(t))
then we do the usual fft then do the filtering, then do inverse fft to get back the original signal.
Well you would not have the original signal, you would have log( original signal ).

BTW, as pointed out above the expression v(t) times g(t) is not an addition of noise, it is a modulation, a non-linear operation for any non-trivial g(t). No linear filter operation will recover the v(t). You'd need another non-linear operation to recover v(t), such as a demodulation.
 
Back
Top