February 20th, 2009 — PhD An Acoustic Disdrometer
There are a few different things happening at the moment. Because the tank is in place and the anechoic has arrived in decent quantities I can really get cracking with some juicy work.
First off, I have started the impact detection routines and suprisingly, they are going very well. What I have to do is attempt to distinguish between impacts and bubbles and I thought I would have real problems, but initial results are promising with an 80-90% success rate. There are only a few more things to do then I should have a working prototype to test.

Impact Interpretation Algorithm Example
Secondly I am still playing with the anechoic. Specifically, altering the shape of the rubber to make triangles which in theory should help absorption and scattering, however the results are inconclusive. They seem to be showing that the unaltered flat rubber is infact better than any sculpted one! Whether this is because of a lack of aborbive material (because the triangles go all the way through) or just a fluke, I dont know so I am repeating the tests with double thickness materials to find out why!
Also I have performed more stairs tests with the flat rubber-foam lining but this time with different size drops produced from different sized needles. 4 hydrophones were used to capture the data so when I come to the position decoding (shouldn’t be long now!) I have something to play with. This also helps with the size estimation routines.
Phil
November 28th, 2008 — PhD An Acoustic Disdrometer
I have bought the final tank! Another milestone passed!
I now have two tanks, the small box that was used for the stairway experiments and the new 0.8m diameter circular tank, on the roof collecting data. The small box is still lined in the anechoic, but the large is not. Because of this, we get lots of nasty reflections.
What I have been able to do is start processing the total sound field, much like the many acoustic disdrometers of Nystuen et. al. but in a more sophisticated statistical way. He fits a distribution around the spectrum of the sound via various fudge factors, as its know in the electronics world. What we have done is used Principal Component Analysis to find the parts of the signal that really are changing with different disdributions and rain rates. This way we get the optimal conversion between a sound spectrum and a DSD.
Up to now I have only processed it on second-by-second data due to a lack of it. But in time I aim to try minute-long datasets in order to properly correlate against the optical disdrometer and the extrapolate back down to one second.
Below are some images of the process; they are self explanatory:




November 13th, 2008 — PhD An Acoustic Disdrometer
I have just computed the absorption coefficients for the drop impacts, instead of a pulse generation.
To do this, I imported the raw drop data into Matlab and manually set all of the areas that had any bubble noise to zero. Then I went back to my software and averaged the pulses like before. Back in matlab I filtered the average (because there was a VLF frequency that would mess up the power measurements) and calculated the mean power.
The results gave an average absorption coefficient of 0.49. A slightly better, but similar result that from yesterday. This helps to conclude the anechoic nature of the lining.
Phil
November 11th, 2008 — PhD An Acoustic Disdrometer
I have now completed the anechoic lining tests and reached an acceptable combination of materials.
To recap, over the last couple of weeks I have used an audio frequency amplifier to increase the transmit power of the pulsed tx signal. I expected this to provide poor results since the pulse was 6.6 uS long, hence providing a spectrum containing a sinc function with the first zero at about 150kHz. However, despite the amplifiers (probable) low pass filters it produced a pulsed signal that could be used and most importantly, at a higher power.
With this power I could now repeat the metal tube tests and actually see the reflection and after about 6 repetitions came to a descision on which material combination to use: a single sheet of heavy rubber backed with foam. The rubber provided some absorbive attenuation, and what doesn’t get absorbed is scattered by the foam.
Armed with the new material I constructed a test tank from a oversized plastic A4 box, typically used for storage, and lined it with the rubber-foam combination. Below are the results from a pulsed tx test from within the tank. Note that the absorption coefficients are not normalised to an area and therefore cannot be directly associated with a sabin coefficient, or equivilent.

From the two tests (these results were very stable) an average absorption coefficient of 0.46 was attained. Just to make sure, I did swap the anechoic around (so that the rubber was on the inside, next to the box wall) and results were poor, indicating that the foam was scattering before the rubber has had time to absorb.
Next time… Results from the (un)infamous stairs test.
October 14th, 2008 — PhD An Acoustic Disdrometer
For about 2 weeks now I have been struggling to find a test that I could perform to ascertain the absorption coefficient in a small tank. The problem is that this tank is only 0.5 m x 1.5 m x 0.3 m and most tests are producing spurious reflections that are masking the reflection that I want. For example, if I were to lay the material under test at one end of the tank and transmit, most of the returning signal will be 1) masked by the reflections from the bottom, surface and side resonances and 2) spread due to the path length difference in the returning waves. These two problems effectively ruin a clean experiment and the only solution is to use a pipe.
The transmission signal being used is pulse-like since we did not have the capabilities to transmit a burst of a sinusoid at a predetermined frequency (which would have been nice) and set the pulse length to something like the impact pulse of a raindrop (50 uS).
Unfortunately, the hydrophones I have are hardly directional, so a lot of energy is transmitted to the side walls of the tube (perpendicular to the hydrophone direction) and bounce around there for ever. To attempt to eliminate this I wrapped the Rx in rubber to eliminate (absorb) some of the sound energy resonating in the pipe. However, this damped the Tx slightly and reduced the receiving area on the hydrophone by an order of magnitude; the reflected pulse was therefore ridiculously small in amplitude.
Hence another experiment was devised to exploit the fact that we cannot remove these resonances. The material under test was place at the bottom of the tank stuck to a metal plate (aluminium to produce a perfect reflection) with the hydrophones placed on top. A coil of rubber was then placed around the test bed to attempt to reduce some of the reflections from the sides of the tank (this seemed to work fairly well). A pulse was then transmitted and allowed to reverberate from the material to the surface and back again. With just metal, the reverberations lasted a long time (about 2.5 mS/3.6 m), but with the absorbing materials the reverberations quickly petered out.
This effect can be clearly seen in the graph, although for a quantitative result I averaged the entire pulse-reverberations over approximately 100 transmissions, squared the data to get the power of the signal and then took the mean. As some example values:
- Metal = 0.3477
- White Absorber = 0.1628
- Egg Foam = 0.0774
- Flat Foam = 0.0723
Surprisingly some open cell foam performed better than the specifically designed acoustic absorption material, however most of this could be due to scattering. According to these results the acoustic absorption material had an absorption coefficient of approximately 0.5, but the foam had a coefficient of 0.8. Considering the foam is about 100th of the price of the absorber, I don’t think that is too bad!
It must be noted that these experiments were designed and performed under our own criteria, namely the droplet-like pulse shape, and they were entirely non-standardised. It does however illustrate that similar, if not better performance can be obtained from much cheaper alternatives.

October 4th, 2008 — Qt
Just to remind myself for next time, when entering variables into windows’ PATH, all entries seperated by a semicolon MUST NOT have a space in between. If you do then the compiler (mingw32-make) complain about:
‘g++’ is not recognized as an internal or external command
September 22nd, 2008 — PhD An Acoustic Disdrometer
The Final Preamplifier for the acousic disdrometer has been designed and built and is working well. Below are a few pictures. The only thing that I would do differently next time is make the whole thing single supply rather than dual supply. Becuase I have used a rail splitter and connected the ground from that to the ground on the outputs, when connecting to an oscilloscope, the non-earth potential shorts against the oscilloscopes ground which is connected directly to earth. Short answer is the power pack -> oscilloscope is creating a big circuit so when trying to force the ground to some other potential (mid-rail for example) it’s never going to win!
PCB, Built PCB, Preamp Cased with Hydrophones
July 31st, 2008 — Linux Ubuntu
I tried to get the open-source drivers working, but it just messed things up. So I used this guide to install the propriatey drivers.
July 31st, 2008 — PIC
I am about to try PikLab with SDCC (Both available via Synaptic Package Manager) and an ICD2. To install the IDC2 I followed this tutorial. It’s supposed to be for the Pic Kit 2, but its just about the same for the ICD2. SDCC also requires GPUtils, so install that too.
One problem so far is that you cannot have spaces in the path of the project being used. Complication will fail and report:
Segmentation fault
+ "/usr/bin/gplink" -I"/usr/bin/../share/sdcc/lib/pic16" -I"/usr/share/sdcc/lib/pic16" -c -m -w -r -o xxxxxxxxxxxxxx
*** Exited with status: 1 ***
July 29th, 2008 — Linux Ubuntu
*************************************
Update: As of Ubuntu 8.10, my Buffalo adaptor was recognised instantly and WPA2 works out of the box. Well done ubuntu!
*************************************
Background:
I am using a Buffalo WLI-U2-KG54 USB wireless device and the default linux USB driver (the rt2500usb) would not support WPA encryption and it would not work at all. After days of searching through other drivers including the ndiswrapper route/hack I found that USB devices based upon the rt25xx chip should use the rt2570 driver. Note that this guide should also work with the real rt2500 driver and its varients. Just replace filenames and identifiers where nessecary.
Assumptions:
A Fresh Install of Ubuntu 8.04.1 (Hardy Heron)
No Local internet access (but access from another computer)
Using WPA TKIP encryption. For any other type of encryption you will have to make some changes. But what they are I dont know.
Lets Go!
- After a clean install boot up and insert the installation CD
- Go to System -> Administration -> Synaptic Package Manager
- Go to Settings -> Repositories and Uncheck all checks and check the CDROM. This removes the internet and adds the cd as a source of files.
- Now search for “Build-Essential”. Right click on Build-Essential and click “Mark for Installation”. If it asks say yes to installing its dependancies too. Click Apply and install. Close.
- Get on the internet and download “http://rt2×00.serialmonkey.com/rt2570-cvs-daily.tar.gz“. These are the drivers that we are going to install. Save them onto a flash disk or something and go back to the ubuntu PC.
- Open up your flash disk and open up /home/. Copy the tar.gz file accross to your home folder.
- Right click on the tar.gz file in the home folder and click “Extract here”.
- Now right click and rename the folder to something nice like “rt2570″
- Open Applications->Accessories->Terminal.
- Now cd to that directory with “cd /home/<yourname>/rt2570
- And cd to the Module directory with “cd Module/”
- Type “Make” to compile the driver
- Type “Make Install” to install the driver
- Type “cd ../../” to get out of the folders and type “rm -r rt2570″. This removes the folder we just had.
- Now we need to get rid of the old drivers. Type “rmmod rt2500usb”, “rmmod rt2×00usb”, “rmmod rt2×00lib”, “rmmod mac80211″
- Use “lsmod” to find any more drivers that your specific card might be using (for example if you are not using the rt2500usb driver). Then rmmod them.
- Start the correct module with “modprobe rt2570″
- Now for the moment of truth. To test type “ifconfig -a” and see if your wireless adapter is at the bottom. It will be called rausb0 or ra0 depending if it is a usb device or not.
- Turn the device on with “ifconfig rausb0 up”. (replace rausb0 with your version from now on)
- And look for some networks! “iwlist rausb0 scan”. Now if you find some networks, happy days its all working. Remember the SSID of that network. If it isnt, then either your router is wrong, you have the wrong driver or you have made a mistake.
- Now we need to stop the old drivers restarting next time we boot so there are two options. First is delete the files or second is this. type “gedit /etc/modprobe.d/blacklist”.
- At the bottom of the file add “blacklist rt2500usb”, “blacklist rt2×00usb”, “blacklist rt2×00lib”, “blacklist mac80211″. All on seperate lines. This blocks attempts to start the old driver. Save and Close.
- Now open “gedit /etc/network/interfaces”.
- This is an important bit, so I will do it in a code box. After the auto lo and iface lo inet loopback lines enter this:
auto rausb0 # place your card name instead of all rausb0's
iface rausb0 inet dhcp
pre-up ifconfig rausb0 up
pre-up ifconfig rausb0 down
pre-up ifconfig rausb0 up
pre-up sudo iwconfig rausb0 mode Managed
pre-up sudo iwpriv rausb0 auth 3
pre-up sudo iwpriv rausb0 enc 3
pre-up sudo iwconfig rausb0 essid "<your ssid from before>"
pre-up sudo iwpriv rausb0 wpapsk <your wpa password>
pre-up sudo iwconfig rausb0 essid "<your ssid from before>"
Note the quotes around the ssid. The reason why you have to put the ssid twice is so that the wpapsk key can be generated properly. I think that all of my problems were because of this. I was only doing it once for ages. The up down stuff at the start seems to make it more stable. The auth 3 means wpa and the enc 3 means TKIP. If yours is different then take a look at the iwpriv-readme in the driver folder.
Now restart and that should be it. Next time it reboots the dhclient should find you an address!! yay. Note that running “/etc/init.d/networking restart” also restarts the network, but doesnt always work. The first time it seems to, but after that I dont get any DHCP offers. Dont know why, restart and it should be ok.
Hope that helps. Ive spent 3 whole days doing that. And I mean whole days.