I have a problem involving cut-off frequency.

I have a voice message in an audio file .mat which have an eletromagnetic noise. I am trying to recover the original message by applying digital Butterworth filter with MatLab. To this, besides of design the Butterworth filter, also I have to find the cut-off frequency to eliminate all, or partially, the electromagnetic noise.

The picture below shows the Fourier Spectrum of the voice message with the electromagnetic noise. How could I find the cut-off frequency to eliminate the noise? Thanks in advance!

Sampling frequency = 44.8 kHz.

enter image description here

  • $\begingroup$ um, that spectrum doesn't look good at all. I don't think a simple butterworth will do here (it's questionable a butterworth design is appropriate at all – you probably want some multi band-pass filter, but it's hard to say without knowing the properties of your noise). Looking at this rectangular nightmare, I'd presume you have something very peculiarly shaped in the time-domain signal, not something you'd cancel in frequency domain. $\endgroup$ – Marcus Müller Nov 26 '19 at 18:54
  • 1
    $\begingroup$ @MarcusMüller that noise? seems from a modulated sinc() function in time. Why is it there ? homework/project may be :-). I assumed that the noisy looking part towards the DC from the pulse was the message. Otherwise the message is a sinc() :-) $\endgroup$ – Fat32 Nov 26 '19 at 19:25
  • 1
    $\begingroup$ yesss, and the Gibb's on that signal looks incredibly textbook. And that means the thing is, even if it's not just a single impulse/burst (might be an elegantly arranged comb...), easy to spot in time domain $\endgroup$ – Marcus Müller Nov 26 '19 at 19:27

I think you consider that pulse in the spectrum as the noise. Then you should remove it by a lowpass filter of cutoff frequency $$ f_c = 5 ~\text{kHz.}$$

Slightly less than this should be used for guarding against the transition width of the lowpass filter. So you better select something like $4.8$ kHz for the lowpass filter cutoff frequency.

Note that your sampling frequency $F_s$, probably, is $44.1$ kHz and not $44.8$ kHz. Then your digital frequency for cutoff into the Matlab functions will be: $$f_{cd} = \frac{ 2 f_c }{F_s} $$

with the given values of $F_s$ and $F_c$ your digital cutoff will be:

$$f_{cd} = \frac{ 2 \times 5 \times 10^3 }{44.1 10^3} = 0.2268 $$

or better

$$f_{cd} = \frac{ 2 \times 4.8 \times 10^3 }{44.1 10^3} = 0.2177 $$

| improve this answer | |
  • 1
    $\begingroup$ Shouldn't it be $\frac{2\pi f_c}{F_s}$? $\endgroup$ – David Nov 26 '19 at 18:37
  • 1
    $\begingroup$ @David No. $f_c$ and $F_s$ are in Hz. and $f_{cd}$ is between $0$ and $1$. $\endgroup$ – Fat32 Nov 26 '19 at 18:39
  • 2
    $\begingroup$ Oh of course. Glossed over the 'into the Matlab functions' part. $\endgroup$ – David Nov 26 '19 at 19:05
  • 1
    $\begingroup$ Thanks @Fat32 your help was fundamental. Thank you so much! $\endgroup$ – user4642 Nov 26 '19 at 20:12

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.