bandlimited pseudo noise

Magnus Danielson cfmd at swipnet.se
Fri Aug 11 23:01:05 CEST 2000


From: Martin Czech <czech at Micronas.Com>
Subject: bandlimited pseudo noise
Date: Fri, 11 Aug 2000 20:43:16 +0200 (MET DST)

Martin,

> I give up! It is not possible to achieve reasonable bandlimited (20kHz)
> pseudo random noise via shift register hardware.
> Even a digital filter (using the shift register a la Art of Electronics)
> won't do, 32 zeros give only -30dB, not enough for alias suppression
> when digital recording. And alias will kill correlation.

Eh... have you considered the anti-alias filter which is allready sitting
there?

Already today we have this problem, so I don't think you have to shape your
signal too much. Also, there are many bandwidth limiting features in a
measurement system like this. Also, air isn't well suited to transmitt higher
frequencies. Already for the high frequency driver we tend to use compression
drivers in order to set the diafragm and air up for a better transmission.
This is due to the airs compressability and this effect gets more "efficient"
as you go up in frequency.

In the MLSSA system which I used had a 8 pole anti-aliasing filter. The rule
of thumb in the manual is to use a sample rate which is more than 3 times
higher than the antialiasing filter cutoff, if you are using the Chebyshev
(+/- 0.5 db) filter, for the Butterworth and Bessel/Thomson filter you should
have the sample rate more than 4 times of the filter cutoff in order to ensure
at least 76 db of alias suppression. The MLSSA system is using a MLS signal of
12, 14, 15 or 16 order (thus, 4095, 16383, 32767 or 65535 samples length).
If I recall correctly did it use a 12 bit A/D. You could set the sampling
frequency and filter frequency separately. The software did the
cross-correlation and at request you could get a FFT, waterfall FFT, and a
number of diffrent analysis. You could set up your window as you wished.
Even if the system had limits it does things that I still have not found any
valid replacement for. We had it installed in a old Portable Compaq 386 and
this was convenient as I could carry it anywhere, all the cables where there
and I could use it to measure speakers, filters or whatever. It was very neat.

Now, you are doing things I do have considered myself (also being an owner of
a portable DAT player among other things), but I still think it is easier to
just build a small portable hardware to do the whole cross-correlation in
hardware and just carry the impulse responce back home. Cross-correlation
really lends itself to fairly cheap hardware implementations. In my 1973
Motorola McMOD Handbook there is an all-CMOS cross-correlator using a dual
pseudo-random generator setup of the order or 8, thus giving 255 steps, which
allows you to measure the impulse responce with a handfull of components, any
voltage meter and a notepad. You press one button to reset the noise generators
and then you measure that responce, then you press a step button in order to
move one sample. You simply reset, measure voltage, press step, measure voltage
on and on until you have looped through the whole 255 phase positions. I still
have a veroboard implementation that I probably could make work.
So, cross-correlation can be very cheap. If you want to speed it up, you have
to play some parallell tricks, but that scales well so one could use up
available space in a FPGA or something to be pretty quick. The MLSSA PCB was
really not very impressive, only the programable counter sticked out as a
"large" component. Taking a full 65535 sample impulse responce did not take
very long, and then you could also set it up for making multiple runs for added
precission.

I have proposed before that maybe one should create a project around doing
such a thing. It is really not that complex, so it should lend itself well to
a little DIY. You should be able to hook it up to the parallel port of a
portable PC and allow for a fairly small portable system while still provide
usefull precission. With an added MCU of choice we could make it go off the
serial port. As I said, I don't think this is really excessive hardware.
If we want to be excessive I would use some suitable FPGA. Xilinx Spartran
family springs to mind, but a fatter Virtex allows for really high speed! ;D
Making longer impulse responces is not very hard, it's really a cookbook issue
of getting insanely long sequences.

> Ok, back to the original idea: a prepared CD with so and so many seconds
> of pseudo random noise which is Fourier synthesized , and
> thus brick-wall bandlimited...
> 
> This means I'll have always to sacrifice one channel for
> the reference signal.
> 
> It also means that I have to use a linaer amplifier for
> the speaker.
> 
> What do you think, will a small speaker do (HiFi, 40x20*20 cm) ?
> Will 20 or 40 W output be enough for a good signal?
> 
> I have no idea.

Your problem is really that if you have a too weak source, then will ambient
noise effect you more. So, in order to cross-correlate that out you would
need a longer measurement. So, low signal strength become your enemy the larger
room you measure.

> OTOH I have still an Elektor MOSFET power amp, maybe I should
> these parts... 100 W.
> 
> The speaker is rated for sine and for music power, I guess noise
> comes closer to the later?

Closer, and passes. Noise is aggressive in a diffrent manner.

> I must go home now....

Poor you, having to take the weekend off!

Cheers,
Magnus



More information about the Synth-diy mailing list