You can do anything you want with this program except sell it, or part of it,
pretend you wrote it and distribute part of it.
Introduction :
—————————————
I wrote this program for the study of the bats ultrasonic emissions and as I
didn't found any program making a precise frequency analysis, I went to the
task to write them. I believe they are accurate and reasonably fast though a
FPA would be a good help for long samples. Because I don't have one, I wrote
the programs so that they could also be used in command line to have the
opportunity to launch an obey file before to go watching the late show
movie. My intention was to be able to study the graphs on screen but,
because of the awful slowness of Draw, at least with an ARM3, I use it to
print the graphs instead. If anyone of you knows of a faster vectorial program
than Draw, please,let me know.
Description
———————————
FFT_2D
−−−−−−
The FFT_2 application will perform a Fourier transform (frequency analysis)
on the Armadeus formatted file at its input, using the Hanning windowing
technique, which is reasonably adequate for bursts. It outputs a Draw file of
the graph in the ^._draw.InputFileName. This is configurable in the Desc file
or amendable in the command line. The x-axis of the graph represent the
frequencies and the y-axis a normalized level.
A zero offset correction can be applied to the sound sample to cancel the
mistuning of the sampler board. My sound sampler has a permanent offset, so I
had to include it to avoid huge DC components. If yours is well tuned, this
function is useless.
The scale factor was build for my purpose because I record the signals on a
high speed recorder and feed the Archimedes with the signal played back at
one fifth (or one tenth) of the original speed. This function corrects the
scaling of frequency and time on the graphs. I don't know if it could be of
any use for other purposes but I left it as 1 is also a value.
FFT_3d
−−−−−−
This is basically the same program as FFT_2d. The difference is the 3d graph
output. Option 3D outputs a graph with time along x-axis, frequency along
y-axis and level is deflection. Option Sonogram outputs a graph with time
along x-axis, frequency along y-axis and level is black level. The size of
the window is configurable, Hanning is applied to that window and a
(WindowSize/4) overlap is done.
Known problems
——————————————
none, so far, but…
Miscellaneous:
——————————————
For both programs, you will find one burst sample of a pipistrellus pipistrellus inside the application in the directory _sample. The relative graphs will be found in the directory _draw.
The Armadeus format is :
one unsigned char = sampling rate * 1E-6
n signed char = samples values
Warnings
————————
- For those of you who will compile the program, be warned that C5 produces
an executable that builds an bad Draw file. If someone could tell me why.
I'm serious.
- The program evolution reports are not printed at the expected times. Again,
if someone have a suggestion.
- Draw is very, very slow. What can I do ?
I would appreciate feedback at <pdelcham@ulb.ac.be>
If you improve the program in any way, take the time to send me a copy of it.