s1at100 : The target shape at
100 fsps for whistles
s1at10 (
see post Example 2) and
s1at40 (in this post). This kind of definition (i.e., 100 frequency samples per second, fsps) cannot be achieved with Seadragon 2.1 and the best that it can do today is
40 fsps, second diagram, because of the capacity limits of current x86 computers. Whistle
s1 at
100 fsps:
s1at40: The frequency values that we can use at
40 fsps are graphed below, each column represents a frequency value that we can write in the xml file
signals_to_read.xml for a specific time:
Vertical Scale: In the two diagrams above, the vertical scale is the same, at approximately one horizontal line for each distinct frequency value that we can acquire at
48,000 voltage samples per second (vsps) using
FFT on a series of
1024 voltage samples (one series per frequency value). With a normal FFT like we are using in Seadragon and this voltage sampling rate, we get approximately 20 lines per kHz, or
50 Hz per line. By contrast, in the diagram in post
Example 2 for
s1at10, the vertical scale is
1000 Hz per line. For
s1at10, the fsps of
10 and the shape of the signal are such that we don't need to write more frequency values in the xml for that whistle. But at
40 fsps, we can write more frequency samples to shape the whistle better, thus we get
s1at40.
s1at40 vs. s1at10: Whistle
s1at10 has approximately the same frequency values at the same time positions as whistle
s1at10 therefore these two whistles should be similar acoustically. Both
s1at10 and
s1at40 may be representing the same acquired whistle, i.e., they could be representing the same actual dolphin whistle.
Seadragon should be able to recognize the actual whistle by matching it with either
s1at10 or
s1at40. You should not have both whistles in the same xml file because one of these may be ignored during recognition (i.e., the pattern matching process). You should use
s1at10 in the xml file with the Seadragon application which is running at 10 fsps and use
s1at40 with the Seadragon which is running at 40 fsps.
This example is meant to make you aware that the difference in the
sampling rate for the frequency values, the
fsps, is causing significant differences between the representation at
10 and
40 fsps for this kind of whistles. These differences are not caused by the
voltage sampling rate because they both use the same rate of 48,000
voltage samples per second (
vsps). The key frequency samples are the same for both
s1at10 and
s1at40. Only the
frequency sampling rate differs. This shows why it is preferable to use a computer that allows us to run at 40 fsps instead of 10 fsps.
Recall that
s1at10 is drawn in another post,
Example 2, and that both
s1at10 and
s1at40 attempt to represent the whistle drawn in the first diagram in this post, which would require 100 fsps.
About the two diagrams in this post, please note that the main difference between the first diagram (the
target or ideal shape) and the second one (the best possible shape today) is also the frequency sampling rate. The first diagram is based on a sampling rate of
100 frequency values per second (fsps), while with the current, normal, top of the line, off-the-shelf, laptops we can only reach
40 fsps. Changing the fsps requires minor code changes in Seadragon and a future version could run on a computer that could support 100 fsps. These days, only a top-of-the-line server computer (i.e., very expensive) has the resources to support 100 fsps.
Higher Voltage Sampling Rate: One of the main next improvements for Seadragon is probably not a higher fsps but a higher
vsps (voltage samples per second) so that we may acquire and emit at 100 kHz or above. Currently we can acquire up to 24 kHz (effectively up to 18 kHz) and we can emit effectively up to 10 kHz. This limitation is caused by the built-in audio analog-to-digital and digital-to-analog hardware in off-the-shelf computers; hardware which is designed for human acoustics and not for dolphins. To be able to emit good quality whistles at 100 kHz we would need a vsps of 400,000 or more, instead of the current 48,000, which would require additional hardware. Fortunately, based on what we know so far, it seems that many dolphin species do not commonly emit whistles at 100 kHz and that a frequency range of 1 to 10 kHz for whistles may be sufficient for many species, such as Stenella, Tursiops, and Beluga, for example.
The xml text to insert in file signals_to_read.xml prior to starting the application:<object class="org.leafyseadragon.jse.signal.StoredSignal">
<void property="hz40ps">
<array class="java.lang.Double" length="40">
<void index="0"><double>3000.0</double></void>
<void index="1"><double>3000.0</double></void>
<void index="2"><double>3000.0</double></void>
<void index="3"><double>3050.0</double></void>
<void index="4"><double>3100.0</double></void>
<void index="5"><double>3250.0</double></void>
<void index="6"><double>3500.0</double></void>
<void index="7"><double>3750.0</double></void>
<void index="8"><double>4000.0</double></void>
<void index="9"><double>4250.0</double></void>
<void index="10"><double>4500.0</double></void>
<void index="11"><double>4750.0</double></void>
<void index="12"><double>5000.0</double></void>
<void index="13"><double>5250.0</double></void>
<void index="14"><double>5500.0</double></void>
<void index="15"><double>5750.0</double></void>
<void index="16"><double>5900.0</double></void>
<void index="17"><double>5950.0</double></void>
<void index="18"><double>6000.0</double></void>
<void index="19"><double>5950.0</double></void>
<void index="20"><double>5900.0</double></void>
<void index="21"><double>5750.0</double></void>
<void index="22"><double>5500.0</double></void>
<void index="23"><double>5250.0</double></void>
<void index="24"><double>5100.0</double></void>
<void index="25"><double>5050.0</double></void>
<void index="26"><double>5000.0</double></void>
<void index="27"><double>5050.0</double></void>
<void index="28"><double>5100.0</double></void>
<void index="29"><double>5250.0</double></void>
<void index="30"><double>5500.0</double></void>
<void index="31"><double>5750.0</double></void>
<void index="32"><double>5900.0</double></void>
<void index="33"><double>5950.0</double></void>
<void index="34"><double>5950.0</double></void>
<void index="35"><double>6000.0</double></void>
<void index="36"><double>5950.0</double></void>
<void index="37"><double>6000.0</double></void>
<void index="38"><double>6050.0</double></void>
<void index="39"><double>6000.0</double></void>
</array>
</void>
<void property="signalType">
<string>LEX_SIGNAL</string>
</void>
<void property="text">
<string>s1at40</string>
</void>
<void property="uid">
<string>s1at40</string>
</void>
</object>Copyright (c) 2006-2007 Serge Masse.
Permission is granted to copy, distribute and/or modify this document under the terms of the GNU Free Documentation License, Version 1.2 or any later version published by the Free Software Foundation. A copy of the license is included in http://www.gnu.org/licenses/fdl.txt
Labels: cetacean, cetaceans, dolphin, dolphins, leafy seadragon, leafyseadragon, whistle