I want to do some simulations of speech recorded on microphones. In order to simulate the channel response, are there any standard (FIR) filter parameters available that I can use?

  • $\begingroup$ How were the speech files recorded that you want to use for the simulation? I mean that there's also a channel in the original recording which may or may not play a role in your simulation. $\endgroup$ – Matt L. Jul 10 '14 at 7:44
  • $\begingroup$ @MattL. you are right. I forgot about that factor. I don't have access to reference mic characteristics, will have to assume it to have flat response. $\endgroup$ – user13107 Jul 10 '14 at 7:50

Your question is not very specific, nor the answer will be. For example what do you mean by 'standard filter parameters'? I assume that you want to make given speech signals sound like ones being recorded with a specific microphone. Solutions would be

  • Hard way. You must obtain the impulse response of your microphone, for example by using Maximum Length Sequence or Sweep Sine method. In theory such measurement should be performed in anechoic environment (free space outside, well damped room, anechoic chamber), otherwise you will add even more reverberation. When you have your impulse response, simply convolve it with your signal and you will get very good approximation of how your microphone modifies the sound. Obviously speaker characteristics are also part of this impulse response, so you might want to use one with most linear amplitude response. In theory speaker response can be deconvolved to some extend by using reference microphone.

  • Easy way. Measure the frequency response of your microphone by using signals described above. You also measure the frequency response of the reference (maximally flat) microphone. Just subtract two amplitude characteristics and you get how your microphone distorts signals. Having that, use it as the input for the Parks–McClellan algorithm and design FIR filter that resembles this response in a best way.

  • Dummy way. Take the frequency characteristic provided by manufacturer in the manual, trust him, sample it, and use as the input for algorithm mentioned above. In MATLAB that would be firpm function.

| improve this answer | |
  • $\begingroup$ will do it the third way. $\endgroup$ – user13107 Jul 10 '14 at 7:48

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.