referring initially to fig1 and 2 , an embodiment of the invention comprises a personal computer ( pc ) 2 running a windows ® operating system which conforms to the intel ® high definition audio ( hda ) standard . the pc 2 in this embodiment is shown as being equipped with a single external microphone 4 . in another embodiment ( corresponding to the schematic representation in fig3 ), two fixed microphones 16 in a front - facing position ( e . g . on the user display ) with a separation of approximately 20 cm are provided . the microphone ( s ) 4 , 16 is / are designed to be sensitive to human speech and thus have their greatest response below 20 khz but they nonetheless retain sensitivity into the range of 35 - 45 khz with no filtering of these frequencies being applied anywhere in the analogue signal chain before digitization takes place . two examples of suitable commercially available microphones are the panasonic wm - 61a and the sonion simic tc200z11a available from sonion roskilde as , of roskilde , denmark . the intel ® hda standard is designed to improve the audio experience on pc &# 39 ; s with a primary focus on pc &# 39 ; s running the windows ® operating system . there are three features of the hda standard which are particularly beneficial ( although not essential ) when implementing the present invention . the first is that the standard allows for a maximum serial data output rate ( sdo ) of 48 megabits per second ( mbs ) and a maximum serial data input ( sdi ) rate of 24 mbs . the second is that bandwidth is not fixed but can be assigned dynamically according to need . thirdly there is support for multiple input and output streams . the sdi bandwidth allows for an input sampling rate of 192 khz at 32 bit resolution on two channels or a sampling rate of 96 khz at 32 bit resolution on up to eight channels . in the preferred embodiment of the present invention however a 24 bit resolution at a sampling rate of 96 khz is sufficient to be able to digitize and subsequently decode ultrasound signals in the range 35 - 45 khz which is therefore clearly within the capabilities available , whether one or two channels are used . the microphones 4 , 16 employed can be used simultaneously for ordinary sound tasks , such as voice and telephony , as well as for receiving ultrasound due to the multiple stream and dynamic bandwidth capabilities of the hda standard described above . however , to maximize performance and reliability of the ultrasound detection system implemented using the pc 2 , in the preferred embodiments the pc 2 is configured so that a user cannot disable the ultrasound detection function by interfering with the volume or mute control of the microphone channels ( s ) being used by the ultrasound detection system . this can be achieved in software by disabling user access to say the right microphone channel volume control associated with ultrasound reception . this channel can also be used for voice recognition . thus in a preferred embodiment the pc 2 has two microphone channels ( left and right ) each capable of both audible sound and ultrasound reception at 96 khz sampling rate with a 24 bit resolution ( i . e . 96 , 000 samples every second each sample being 24 bits ). the microphone channels have a signal to noise ratio of 60 decibels sound pressure level over the whole frequency range 20 hz - 45 khz . the pc 2 also comprises an external jack socket ( not shown but on a rear - mounted panel ) for connection of the external microphone 4 that replaces the right microphone channel when the external microphone 4 is plugged in ( i . e . the presence of a jack plug in the socket can be sensed in order to effect the switching .) in this scenario the left microphone channel is available for voice applications where the sound volume needs to be adjusted by the user and / or third party software . when not completely muted the left audio channel can be used in addition to the right ultrasound ( fixed sound volume ) microphone channel by the ultrasound detection system to reduce the effect of multi - path interference . similarly both microphones can be used in audio / voice applications for noise cancellation ( directivity ) purposes . the external jack makes it possible to locate the ultrasound reception microphone 4 a short distance away from the pc ( e . g . 2 - 3 meters ). in accordance with the embodiments of the invention described herein an ultrasonic transmitter tag 6 is provided which transmits digital data to the pc 2 using frequency shift keying . more specifically it transmits data messages of seven packets in length , with each packet made up of four bits . each bit is represented by a single tone transmission on one of a pair of frequencies depending on whether a true or false bit is being transmitted . the true and false bit frequencies can be considered as equal offsets above and below a median frequency . these median frequencies vary with each of the four bit positions in the packet in a predefined pattern . moreover the temporal separation between bits and between packets is predefined . the structure of the messages is explained further below with reference to fig7 . the transmission is received using the microphone 4 , 16 which is connected to a sound card 8 which samples the received signal to convert it into digital data . sound acquisition is achieved using the sound acquisition functions which are built - into labview ( trade mark ) available from national instruments . these functions call microsoft directsound ( trade mark ) dll functions . directsound is a software component of the directx library , supplied by microsoft , that resides on a computer with the windows operating system . it provides a direct interface between applications and the sound card drivers . the digitized signal is passed to the cpu 10 where it is decoded so that the original data message it contains can be retrieved . this will be described in greater detail later with reference to fig5 to 7 . the decoded data is then passed to a network card 12 , such as an ethernet card , to be communicated to a data network 14 . of course any other suitable network such as a wireless network could be employed or the pc could instead be a stand - alone machine . fig3 shows an alternative embodiment . in this embodiment rather than an external microphone 4 , the pc 2 has an inbuilt microphone 16 . the requirements for and characteristics of this are as in the previous embodiment . in this embodiment therefore no additional hardware is required and the invention can be implemented on a conventional computer with the addition of suitable software . the other elements are common to the earlier description and are therefore given the same reference numerals . fig4 shows another possible embodiment . this has both an external microphone 16 and a frequency down - converter 18 which converts ultrasonic signals in the range 35 - 45 khz to the range 0 - 10 khz . this is then fed to the line input of a standard pc sound card 8 . typically the microphone 16 and frequency down - converter 18 would be housed in a common package . embodiments such as this are of particular use where the pc &# 39 ; s sound channel is not sufficiently sensitive to ultrasonic frequencies — for example because deliberate filtering is applied . the signal decoding process will now be described with reference to fig5 which is a flow diagram illustrating the main logical stages thereof . in the first stage 20 the analogue signal is sampled to convert it to a digital signal . typically the sound is sampled at 96 , 000 samples per second at 24 or 32 bits per sample , although it has been established that 18 bits would be adequate . the samples are stored in a buffer 22 of size sufficient for 48 , 000 samples ( i . e . half a second ). this corresponds to a buffer size of 141 kb if 24 bit sampling is used . the bitstream passing out of the buffer 22 is filtered to contain only the ultrasound band of interest ( 35 - 45 khz ) using a finite impulse response ( fir ) filter routine 24 . in embodiments employing voice recognition this may be filtered from the raw signal and processed separately . in the next step 26 the filtered signal is then subjected to decimation ( in some systems ) and processed by the cpu 10 using a fast fourier transform ( fft ) routine in order to permit analysis of the incoming signal in the frequency domain . the size of the data chunks read from the digitization buffer 22 is the product of the length of the samples to process in the fft routine ( typically 20 - 256 samples ) and the number of shift frames to read ( typically 10 - 100 ), with the constraint that this product should be smaller than the buffer size . the shift frames are samples shifted in time relative to the actual time of receipt , the purpose of which will become clear below . the tag 6 transmits using a 20 millisecond bit length . on the other hand a 32 millisecond fft frame length is used which is substantially longer . this is advantageous since it means echoes with an additional path length less than 12 ms multiplied by the speed of sound ( i . e . approximately 4 meters ) are also taken in the fft . next a short time fourier transform ( stft ) is carried out at step 28 . this consists of a sequence of fourier transforms with a fixed shift in time . the number of points in the time frame used in the fast fourier transform ( fft ), i . e . the fft length , can be smaller than the number of points used in the fft calculation ( fft size ). this can be used to increase the frequency resolution of the fourier transform at the cost of additional computational power . typically the fft size is set to approximately twice the fft length but always a power of two . if the incoming signal does not add up to a multiple of the fft length and shift combination , the remainder of the signal ( not transformed ) is stored in a local buffer and added to the start of the next incoming data chunk . the precise filter applied in the filtering step 24 is dependent upon the decimation factor to be applied at the next step 26 ( if indeed any decimation is applied in order to avoid aliasing of the ultrasound signal and other audio signals when decimation is done ). if , for example , no decimation , or a decimation factor of three , is employed , a real fft is used . if decimation by a factor of five is used the stft is realized by performing separate fft &# 39 ; s on the real and imaginary part of the signal datastream after which the results are combined to obtain a real fft signal again . once the appropriate fourier transforms have been applied the frequency distribution is analyzed to determine the encoded data . in order to verify that a valid message has been received and to decode the data encoded in that message , three levels of correlation are carried out . firstly individual packets are identified within the signal at step 30 . these are then used collectively to ensure that the entire message is valid ( making use of the expected spacing between packets in a valid message ) at step 32 . this is in turn used to find a packet peak at steps 34 and 36 . thereafter correlation is carried out at steps 38 and 40 on the individual bits within the packets to determine whether they are true or false . these steps 30 - 40 will be explained further below with reference to fig6 and 7 . two packet templates 42 , 44 are defined in order to identify packets within the signal . these are shown on the left - hand side of the vertical line in fig6 . the pattern of the templates is dictated by the communication scheme ( i . e . the changes in median frequency between the four different bit positions ), the acquisition parameters , the bit - length and the frequency spread specified . one template 42 corresponds to the frequency values for the true bits at each bit position ; and the other template 44 corresponds to the frequency values for the false bits at each bit position . they are thus known as the true and false templates respectively . each template 42 , 44 comprises pixels with a value of 1 /( bit length * frequency spread ). the sign of the pixel ( i . e . whether they are above or below the median frequency for a given bit position ) is determined by whether it is a true or false bit . the number of pixels along the time axis is given by quotient of the bit length and the stft shift duration . the frequency spread can be specified by a user . it should be selected empirically to resemble the observed frequency spread of a direct path ultrasound message . along the frequency axis ( y - axis ) the templates are augmented by adding “ f search width ” zero &# 39 ; s at both the lowest and highest frequency range . these acts as buffers for the frequency shift correlation to determine the doppler shift . the incoming stft results 46 are matched against the two templates 42 , 44 using a two - dimensional cross - correlation : both the templates are shifted along the frequency and time axes . for each time and frequency position the true and false templates will each generate a cross - correlation score . these scores are then added together to give a score for that frequency and time shift . the combination of frequency and time shift which gives the highest value for this summed score is denoted as the ‘ winning ’ cross - correlation . a trace may be produced which is a plot of the correlation value as a function of time . this is achieved by calculating the packet correlation , spaced by “ shift ” samples , as described earlier . the peak in this trace represents the highest correlation of the incoming signal with the summed true and false bit templates 42 , 44 at that time instant and for all allowed doppler shifts . as the correlation process continues ( it is carried out continuously ), the next packet will be encountered and so another peak will be generated . thus in the time in which a whole message has been received there will be seven peaks in the correlation trace in the presently described example . an example of a correlation trace may be seen in fig7 a . although the correlation scores for all 4 bits of each packet template 42 , 44 are summed to produce the trace in fig7 a , the correlation scores of each bit position are also recorded . these are shown in fig7 c to 7 f with fig7 c corresponding to bit 1 ; fig7 d corresponding to bit 2 , fig7 e corresponding to bit 3 ; and fig7 f corresponding to bit 4 . in these plots the false bit template correlations are apportioned negative values . thus for example in fig7 c bit 1 is true in the first 3 packets , false in the fourth , true in the fifth and false in the sixth and seventh packets . these plots allow direct estimates of the bit values but a more accurate and reliable method of determining these is set out below . bitwise noise correlation is performed by defining at each time step a noise level corresponding to the correlation value of the ‘ losing ’ bit value correlation . the time - frequency correlation routine set out above generates the packet correlation as a function of time ( fig7 a ) that can then be in turn used for thresholding and peak detection to determine the location of packets . the routine also makes available the bitwise correlation and noise matrices and the packet doppler index that are used by later routines to find the bitwise doppler shift and winning bit sign . the routine described above stores the correlation results in intermediate buffers that are at least long enough to hold stft correlation results of one message with some buffering . amplitude re - scaling by correlation is optionally carried out in which the incoming signal is normalized over a predetermined time window to provide an amplitude normalization constant , the normalized signal is used in subsequent fourier transform and cross - correlation calculations and the final results from the cross - correlation are corrected by multiplying them by the normalization constant . this has the advantage of avoiding having to process the fourier transforms and cross - correlations using floating numbers . this is an important consideration for e . g . embedded systems where the use of floating numbers carries a high computational overhead . the known periodicity of the packets within a message can be exploited to carry out verification of the message and to obtain an accurate timing for the bits . knowing that a message consists of n packets with a spacing in time of k time intervals , then for each time instant , the arithmetic or geometric mean is calculated over the last n samples spaced by k time intervals . in the example described herein , where a message comprises seven packets , a sample is taken from each of the seven packets , the samples being separated by the packet spacing . the arithmetic or geometric mean is then calculated to give a single , message level , correlation peak 48 . this can be seen in fig7 b . effectively the individual packet correlation peaks are each time - shifted by an amount dependent on their position in the message so that they are all collapsed onto the same time point and then the mean ( arithmetic or geometric ) is taken to produce the single peak . it has been found that for short packet lengths ( e . g . 3 bits ) an arithmetic mean works best , for larger packet lengths ( e . g . 7 bits ) a geometric mean works better . as a result of the averaging , the process above always produces a clear peak 48 even if one of the packet correlation peaks is very low or missing . in fact the peak 48 has the shape of a sinc function − sin ( x )/ x as can be seen from fig7 b . the two sidebands of this function 50 are a predetermined proportion of the height of the main peak 48 , and this ratio is highly invariant to other factors . this is therefore used for verification of the message . if the expected ratio is not present to within a predefined threshold , the potential message is discarded as noise . at step 34 the message correlation as a function of time is analyzed for peaks and peaks are visualized in the packet / message correlation graph . peak finding is performed using a built - in labview routine . peak finding is done using an internal data buffer ensuring that every time / data point in the message correlation is analyzed ( thereby avoiding discontinuities on the stft frame boundaries ). the highest peak that can be obtained by the message correlation routine is calculated and provides an accurate time instance for message arrival ( since the offsets applied to the packets to produce it are accurately known ). this timing information can then be used for packet peak finding at step 36 and for stage two of the decoding ( steps 38 and 40 ) where the individual bits in each packet are determined to be true or false . the applicant has appreciated that the routine set out above gives a very precise and accurate indication of the message arrival time since it effectively takes an average of all 28 bits that make up a message , thus whilst the inherent timing error may be a relatively large proportion of the duration of individual bits ( which is 20 ms in this example ), the averaging over all bits dramatically reduces the proportionate error . accurate and precise knowledge of the message arrival time is useful not only for decoding the message but also for giving time - of - flight information . this allows the distance to the mobile transmitter tag to be determined accurately , typically to within a few centimeters . this further enhances the possible applications to which such embodiments of the invention can usefully be put . the routine described above stores the correlation results in intermediate buffers that are at least long enough to hold stft correlation results of one message with some buffering . once a new central message peak 48 has been identified at step 34 , packet peaks are calculated at step 36 , the bit correlations are analyzed find bit peaks at step 38 to identify the value of each bit at step 40 . the routine takes the time ( buffer ) location of the central message peak identified 48 and analyses the content of the bit correlation difference and sum . for each bit a calculation is made as to whether the maximum correlation is given by the positive or the negative correlation . the result of this is used to select the ‘ winning ’ doppler index . the doppler index is then stored as are the bit correlation with sign , bitwise noise correlation , packet correction and packet noise correlation . as the 7 packets ( in this example ) are decoded the message can be assembled at step 52 and a cyclic redundancy check carried out on the decoded message . in the example used above of a 28 bit message from the mobile ultrasound transmitter the message format can include an identification code , status information ( e . g . battery level , whether it is stationary or moving ) and an error check such as 7 bit cyclic redundancy check . this makes it suited to a variety of different applications such as asset tracking , security identity verification etc . an estimate of proximity could be determined by signal strength which may be sufficient to enact certain operations when a user is within a predetermined range of a computer . the message decoding method set out herein gives a highly robust and accurate way of decoding data encoded on ultrasound tones , especially when these are detected by microphones and associated receiving means not designed for ultrasound reception . this makes the use of off - the - shelf audio receiving systems highly suitable for use in ultrasound communication applications . as previously explained the coded data could for example be an identification code . in some preferred embodiments this could be arranged as part of a code - hopping protocol with similar algorithms being used at the transmitter and receiver to generate and verify the codes respectively . this makes the system even more secure since even if an eavesdropper were to be able to get sufficiently close to intercept a transmission from the tag , it would not be possible to use this to construct an imitating transmitter and therefore gain a false identification . the applicant has recognized that for the time being there will be a large number of computers in existence that do not have the ideal audio capabilities discussed above . however these can still benefit from the principles of the invention by the use of a frequency down - converter . one such embodiment will be described with reference to fig8 . in this figure there can be seen an ultrasound - enabled microphone 60 , the signal from which passes through a band - pass filter 62 to a mixer 64 . the band - pass filter 62 passes ultrasound frequencies in the range 35 - 45 khz to prevent aliasing between the second input to the mixer 64 is from a local oscillator 66 . the output from the mixer 64 is passed to a jack plug for plugging into the microphone input socket of an ordinary pc sound card 68 . conveniently the microphone and other circuitry can be powered from the voltage supplied by the microphone input of the standard pc sound card 68 . the effect of mixing the signal received from the microphone 60 with that from the local oscillator 66 is effectively to subtract the respective frequencies ( multiplication on the time domain being equivalent to addition / subtraction in the frequency domain ). the incoming signal is thereby effectively down - converted in frequency by a fixed amount . the band - pass filter before the mixer helps to prevent aliasing of the down - converted signal with audible signals in the same frequency range . the microphone could , for example , be a panasonic wm - 61 condenser microphone . these microphones contain a field - effect transistor ( fet ) within their package which in normal use is designed to have a fixed bias voltage of approximately 1 volt applied to it . however by applying the oscillating signal from the local oscillator 66 to the bias input of the fet , it acts as the mixer 64 . in an alternative configuration a resonant murata piezotite ® piezo - electric transducer could be used in place of the microphone 60 . this would obviate the need to provide a separate band - pass filter 62 since these have a narrowband characteristic by their nature . an example of a suitable transducer is the ma40s4s or the ma40b8r / s from murata manufacturing co ., ltd , kyoto , japan . if such a transducer is used a separate fet or other mixer is required . to give a specific example if a mixing frequency of 32 . 67 khz is provided by the local oscillator , then this will down - convert ultrasound signals in the range 35 - 45 khz down to the band 2 . 33 - 12 . 33 khz . this signal is then passed to the sound card which has a sample rate of 44 . 1 khz at 16 bits . this is easily sufficient to digitize the down - converted signal and allow it to be processed in exactly the same way as is in the embodiments described above . fig9 shows a modification to the fig8 embodiment . this embodiment allows the microphone input on the sound card 68 to be used for ordinary speech as well as for processing down - converted ultrasound signals as described with reference to the fig8 embodiment above . accordingly a second microphone 70 is provided to pick up speech which is passed through a low - pass filter 72 and directly into the sound card 68 . the low - pass filter 72 has a roll - off at approximately 8 khz . this ensures that ordinary speech frequencies ( 100 - 6000 hz ) are passed whilst blocking higher frequency sounds . on the other hand , by setting the frequency of the local oscillator 66 in this embodiment to 25 khz , the ultrasound signals in the range 35 - 45 khz will be down - converted so as to occupy the range 10 - 20 khz . this ensures that the speech and ultrasound signals remain clearly distinct from one another in frequency and so can be easily separated after digitization . although not explicitly described , the system could also receive and analyze voice for characteristic frequencies and patterns that enable a user carrying a tag to be independently identified in order to act as a further level of security . while the invention has been described with reference to exemplary embodiments , it will be understood by those skilled in the art that various changes may be made and equivalents may be substituted for elements thereof without departing from the scope of the invention . in addition , many modifications may be made to adapt a particular situation or material to the teachings of the invention without departing from the essential scope thereof . therefore , it is intended that the invention not be limited to the particular embodiment ( s ) disclosed herein as the best mode contemplated for carrying out this invention .