I'd like to know more of the measurement methods, and possibly suggest new one.
The MLS is almost straightforward, still I'd like to get clarification for following issue:
1. MLS sequense has _almost_ flat frequency response. Thus cross correlation with sent signal with received one gives _almost_perfect_ approximation of system impulse/frequency response. The issues is these nonidealities. If we take small ripple in the frequency response of the MLS sequence into account, then the measurement result have double amount of that ripple. The correct way is to produce resiprocal frequency response of the MLS sequense, and to do the cross-correlation with that signal. Thsi way the ripple will cancel itself.
2. MLS sequense is good solution in situation where transmitted signal is expressed with small level of quantization (e.g. 1-bit DA converter). With sound cards that isn't true. MLS sequense pushes your speaker to both end of full DA scale, with no levels between.
If one could use signal which has similar properties (e.g. statistical amplitude distribution) to normal music, the measurement didn't overload the system unrealistically.
The way to do this is to generate another signal which has pretty flat frequency response, and doing analysisi with that. If the response isn't exaclty flat, it didn't matter alot, because (according to the text in MLS section) it can cancel itself. The only aspect with non-flat frequency response is that in the frequencies where responce is greatly reduced, S/N of the measurement is also reduced. If one can anyhow keep the flattness within 1 dB or lower, the degration of S/N is not a problem.
There are several ways to produce such signals. I have successfully used the following scheme.
Prepare a FFT buffer (in frequency domain) with samples with amplitude of 1 and (pseudo)random phase. Then do FFT to time domain and you have signal which acts like real-life noise and has flat frequency response (in the bin spacing of used FFT). When analysing received signal, one needs to do FR[f] = RD[f]/SD[f].conj; where FR is frequency response, conj is conjugate, RD is received data and SD is sent data (in frequency point f). (I'm not sure if the formula was exactly like this, will correct if needed). FR is then frequency domain representation of response, which can be FFTd to time domain impulse response.
One nice way to generate stimulus is to prepare the phase with a 2nd degree polynomial. That will give a "chirp" signal, which has flat frequency response and small crest factor, allowing to use more power during measurement.
--
Topi
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
Hi,
I'd like to know more of the measurement methods, and possibly suggest new one.
The MLS is almost straightforward, still I'd like to get clarification for following issue:
1. MLS sequense has _almost_ flat frequency response. Thus cross correlation with sent signal with received one gives _almost_perfect_ approximation of system impulse/frequency response. The issues is these nonidealities. If we take small ripple in the frequency response of the MLS sequence into account, then the measurement result have double amount of that ripple. The correct way is to produce resiprocal frequency response of the MLS sequense, and to do the cross-correlation with that signal. Thsi way the ripple will cancel itself.
2. MLS sequense is good solution in situation where transmitted signal is expressed with small level of quantization (e.g. 1-bit DA converter). With sound cards that isn't true. MLS sequense pushes your speaker to both end of full DA scale, with no levels between.
If one could use signal which has similar properties (e.g. statistical amplitude distribution) to normal music, the measurement didn't overload the system unrealistically.
The way to do this is to generate another signal which has pretty flat frequency response, and doing analysisi with that. If the response isn't exaclty flat, it didn't matter alot, because (according to the text in MLS section) it can cancel itself. The only aspect with non-flat frequency response is that in the frequencies where responce is greatly reduced, S/N of the measurement is also reduced. If one can anyhow keep the flattness within 1 dB or lower, the degration of S/N is not a problem.
There are several ways to produce such signals. I have successfully used the following scheme.
Prepare a FFT buffer (in frequency domain) with samples with amplitude of 1 and (pseudo)random phase. Then do FFT to time domain and you have signal which acts like real-life noise and has flat frequency response (in the bin spacing of used FFT). When analysing received signal, one needs to do FR[f] = RD[f]/SD[f].conj; where FR is frequency response, conj is conjugate, RD is received data and SD is sent data (in frequency point f). (I'm not sure if the formula was exactly like this, will correct if needed). FR is then frequency domain representation of response, which can be FFTd to time domain impulse response.
One nice way to generate stimulus is to prepare the phase with a 2nd degree polynomial. That will give a "chirp" signal, which has flat frequency response and small crest factor, allowing to use more power during measurement.
--
Topi