How Can I filter an audio Signal?

5 views (last 30 days)
vajihe
vajihe on 27 Dec 2013
Commented: behrooz on 28 Dec 2013
The aim of this function is to separate the voice of a speaker from a siren in the background. Basically, this function applies a filter on the input. I Want to design and implement such a filter, either by using difference systems or Fourier multiplication. (hint: the desired filter is band-stop; i.e., some frequencies in the middle that mainly contribute to the voice of siren should be blocked) We have 2 inputs: "vector_of_samples" is a vector that contains the samples of the audio file. It can be either vertical or horizontal. If the elements are complex, the imaginary parts will be ignored.
"Fs" is the sampling frequency (HZ) which is used for sampling the audio
signal.
  3 Comments
Image Analyst
Image Analyst on 28 Dec 2013
Thresholding won't get the siren unless the siren is always louder than the other sounds, which is not the case because a siren oscillates. The band stop filter is probably best for simple cases, though Independent Components Analysis (ICA) is better for more complicated situations (i.e., the "Cocktail Party Problem"). See this
behrooz
behrooz on 28 Dec 2013
Thats right,in some cases thershold works,depends on whats our case!!

Sign in to comment.

Answers (1)

Image Analyst
Image Analyst on 27 Dec 2013
Take the fft and plot the real part. Since the siren was specified that you'll need a band stop filter, you will notice a spike in the voice spectrum region that represents the energy of the tone of the siren. You may notice another spike in a low frequency that represents the warbling but it's probably less than 5 hertz. So then just set that to zero and inverse fft.
realFreqSignal(index1:index2) = 0; % Band stop.
timeDomainSignal = ifft(realFreqSignal);
You need to determine what index1 and index2 are.

Categories

Find more on Audio Processing Algorithm Design in Help Center and File Exchange

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!