Background
One of the coolest ideas the Kii Audio speakers have, that I'm very impressed by, is the directional control of sound distribution, achieved by means of phase control of signals via the DSP. Basically
- For frequencies up to 250Hz, they achieve a cardioid distribution, minimising rear and side reflections of bass frequencies
- For mids/highs, they also achieve an effective point source, focused on the midrange unit, which a) ensures a more coherent wavefront for the listener, improving transient response b) again reduces reflections that otherwise interfere with the original transmission
All via DSP magic... How do they do that? I want to know... And I happen to have a couple of mid/bass units knocking around from the unfinished van speakers project, maybe I could do something with them... But what? I need to think about how this could work first.
So I started to try to draw some interference patterns at a specific frequency, using coloured pencils and a compass. Well, it was probably therapeutic (I"d had a pint or two with Mick for lunch!), but didn't really get me anywhere. The only way to explore this in any way usefully is obviously to do it on a computer, where parameters can be easily changed, and graphs/pictures saved etc. At this point, lacking funds to purchase MatLab,
gnuplot is your friend! [I've since looked up MatLab, and you can get a student basic version for £29+VAT, or the whole schemozzle for £55+VAT - not bad really!].
Basics
OK, so gnuplot has a magnificent CLI :-), just the ticket! I stole a demo function for sinc(x,y) in 3D, and chopped out bits I didn't want, experimented with ranges, the surface iso line density and so on. Here's some of the results...
|
Basic wave propagation from single source |
|
2 sources, separated by 1 wavelength |
|
2 sources, 2 wavelengths |
|
2 sources, 3 wavelengths |
This isn't really moving me on much, but it was pretty interesting and a good start for late in the evening after the lunchtime pint had worn off! What about a 3rd source, located behind the other two?
|
3 sources, 2 level 1 wavelength apart, 1 to rear 2 wavelengths from axis |
|
3 sources, 2 level 2 wavelengths apart, 1 to rear 4 wavelengths from axis |
|
All very pretty, but not really achieving much. I think I need to introduce some considerably shorter differences, and some adjustment of relative phase.
The gnuplot code that does this is variations on the following - this produces the very first image:
# set terminal png transparent nocrop enhanced size 450,320 font "arial,8"
# set output 'surface1.16.png'
set dummy u, v
set view 70, 20, 1, 1
set samples 51, 51
set isosamples 101,101
set style data lines
set ztics -1.00000,0.25,1.00000 norangelimit
set xlabel "X axis"
set xlabel offset character -3, -2, 0 font "" textcolor lt -1 norotate
set xrange [ -1.00000 : 1.00000 ] noreverse nowriteback
set ylabel "Y axis"
set ylabel offset character 3, -2, 0 font "" textcolor lt -1 rotate by -270
set yrange [ -1.00000 : 1.00000 ] noreverse nowriteback
set zlabel "Z axis"
set zlabel offset character -5, 0, 0 font "" textcolor lt -1 norotate
set zrange [ -5.00000 : 5.00000 ] noreverse nowriteback
sinc(u,v) = sin(sqrt(u**2+v**2))
GPFUN_sinc = "sinc(u,v) = sin(sqrt(u**2+v**2))"
x = 0.0
## Last datafile plotted: "$grid"
w = 2 * pi
splot [-10*w:10*w] [-10*w:10*w] sinc(u,v)
Of course, some of this is not relevant, since I cribbed it from a demo, but I can sort that later if required. The function name is left as "sinc" since it isn't important.
Now I'm trying to decide what fractional wavelength to use, and what the effects of adding sine waves is anyway - here's a plot of sin(x), sin(x-w/4) and their sum, mapped onto sqrt(2)*sin(x-w/8) - exactly the same signal, but bigger and phase shifted by the difference between the originals! Clearly the physical separation is important - can I see this?
|
sin(x), sin(x-w/4), their sum and sqrt(2)*sin(x-w/8) |
Breakthrough - at least in how to think about this! Rather than be concerned about the specific frequency, and the
actual physical separation of the bass units, I have merely to concern myself with the required relative distance between woofers to achieve a cardioid response. This is because the DSP can vary the phase/
effective distance between woofers by frequency!! Cool... I wonder if Linkwitz has anything about this...
No comments:
Post a Comment