0
$\begingroup$

I'm an electrical engineering major and I have a question regarding a project I'm working on.

I'm supposed to design 3 band-stop filters on MATLAB for echo cancellation/suppression.

My problem is not filter designing, but with taking acoustic measurements of a classroom since I have little or no information in that area.

The supervisor suggested taking coefficients using impulse response invariant! I could not find something solid or a method while searching online.

So my question is, what is the simplest way of taking acoustic measurements of a normal size room/classroom? How to find the coefficients through impulse response invariant method?


All suggestions are appreciated, current tools I have (dynamic mic, speakers, audio interface (Focusrite Scarlet 2i2), RoomEQ wizard, MATLAB/Simulink, FPGA DE2 board with cyclone)

I tried using RoomEQ wizard and followed their tutorial but did not work properly or maybe I`m not getting the whole picture.

$\endgroup$
3
  • $\begingroup$ I guess you are trying to remove some frequencies corresponding to the most severe room modes - is that correct? $\endgroup$
    – jojek
    Mar 14 '15 at 17:00
  • $\begingroup$ yes sir. Im not familiar with manually measuring rooms acoustics so I would appreciate it if you exaggerate. $\endgroup$
    – engalex
    Mar 14 '15 at 17:06
  • 1
    $\begingroup$ I guess I can elaborate... If you have problems with REW then you should read their manual or ask on forum. When it comes to measurements you need a calibrated microphone with known frequency response. Dynamic microphone won't do. Better use some electret microphone, i.e. ECM 8000 or some home-made WM61a jig. Probably you are going to use sweep-sine method to obtain impulse response. Also if you are trying to adjust some PA system then you should use it as a source - not the speakers. Use at least 6 positions of a microphone and average the results. $\endgroup$
    – jojek
    Mar 14 '15 at 17:21
-1
$\begingroup$

It doesn't matter where your microphone is in the room when you take the measurement. What you need to do is find where the peaks are in the cross correlation (each peak corresponds to an echo at a certain lag/delay), figure out what the corresponding inverse filter needs to be to cancel out the sound.

If you're trying to do echo cancellation in MATLAB and have the signal processing toolbox, take a look at the example in xcorr by typing:

doc xcorr

for a simple example.

Edit 1:To find the inverse filter required, you need to calculate the transfer function between the source and the mic. (edit: sentence in here was misleading) Once your filters are set up, as long as nothing is changing you should be able to cancel the echoes produced by the room.

Edit 2: To get the room impulse response you typically use a long LFM chirp (some people pop a balloon) and a microphone, then calculate the transfer function between the input signal and the recorded signal. Here's an example paper of what you can do: http://www.artalabs.hr/papers/im-aaaa2003.pdf

Edit 3:

You do realise that reverberation (or echoes as you described) are dependent on location and even time?

you said you are making an "impulse response invariant" filter. So as long as neither your source or microphone are moving, the IIR filter created from your Room Impulse Response measurement will cancel out your echoes...just make sure the mic and speaker stay in the same spot.

$\endgroup$
6
  • $\begingroup$ It's not about delays and position of microphone is very important. Additionally I don't know how you imagine cancelling the late arrivals using filter in that case. You do realise that reverberation (or echoes as you described) are dependent on location and even time? $\endgroup$
    – jojek
    Mar 15 '15 at 18:42
  • 1
    $\begingroup$ Echoes = delays. If the speaker/mic are not moving, then positions 100% do not matter. $\endgroup$
    – mikeR
    Mar 15 '15 at 19:12
  • $\begingroup$ In acoustics echoes are a specific kind of reflections. Not every delay is an echo, but every delay is a late arrival. $\endgroup$
    – jojek
    Mar 15 '15 at 19:14
  • 1
    $\begingroup$ "I'm supposed to design 3 band-stop filters on MATLAB for ECHO cancellation/suppression." Echoes manifest themselves as peaks at certain lags(delays) in the cross correlation. $\endgroup$
    – mikeR
    Mar 15 '15 at 19:34
  • 1
    $\begingroup$ What "is ain't going to work?". Your suggestion to use a calibrated microphone with a known frequency response is bogus. You can calculate the whole system transfer function using a known input such as a sweep. Additionally, your arbitrary suggestion of 6 source locations and averaging the results is illogical. Unless you place the microphone/speaker back at one of those 6 exact locations, then the filter won't work. In fact, it will likely be worse everywhere else because now you've introduced the wrong filter for that location. $\endgroup$
    – mikeR
    Mar 15 '15 at 19:50
-1
$\begingroup$

There is a lot of information on the acoustic measurement of symphony halls, sound stages, classrooms, etc. Much of it can be found in JASA (Journal of the Acoustical Society of America). For example. you would get about 187,00 hits when googling for: JASA + acoustic measurements of a classroom.

In addition, there are other sources, such as:

http://www.davidgriesinger.com/dgaes92b.pdf

As for the impulse response invariant method, you can get similar results by googling for: impulse response invariant method + room acoustics.

$\endgroup$

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.