Login| Sign Up| Help| Contact|

Patent Searching and Data


Title:
DATA TRANSMISSION SCHEME AND APPARATUS
Document Type and Number:
WIPO Patent Application WO/2018/020041
Kind Code:
A1
Abstract:
A method and corresponding transmission apparatus for communicating digital data,the method involving encoding and transmitting at least one part of the data to be communicated by: representing at least one data value by, or associating at least one data value with, a respective frame (e.g. timeslot) from an ordered series of frames; selectively transmitting signal data in the frame associated with or representative of the one or more data values that correspond to or are equal to the at least one part of the data to be communicated. Also described are a corresponding method of decoding data that has been communicated, a receiver and a transmission system.

Inventors:
BASNAYAKA DUSHYANTHA A (GB)
HAAS HARALD (GB)
Application Number:
PCT/EP2017/069249
Publication Date:
February 01, 2018
Filing Date:
July 28, 2017
Export Citation:
Click for automatic bibliography generation   Help
Assignee:
UNIV COURT UNIV OF EDINBURGH (GB)
International Classes:
H04L1/00; H04L25/49
Domestic Patent References:
WO2015175122A12015-11-19
Foreign References:
US20100246639A12010-09-30
Other References:
MAGNUS KARLSSON ET AL: "Multilevel pulse-position modulation for optical power-efficient communication", OPTICS EXPRESS VOL. 19, ISSUE 26, PP. B799-B804, 6 December 2011 (2011-12-06), pages B799 - B804, XP055416853, Retrieved from the Internet [retrieved on 20171018]
O'REILLY J J ET AL: "LINE CODE DESIGN FOR DIGITAL PULSE-POSITION MODULATION", IEE PROCEEDINGS F. COMMUNICATIONS, RADAR & SIGNALPROCESSING, INSTITUTION OF ELECTRICAL ENGINEERS. STEVENAGE, GB, vol. 132, no. 6, PART F, 1 October 1985 (1985-10-01), pages 441 - 446, XP000797274, ISSN: 0956-375X
L. FRANKS, CARRIER AND BIT SYNCHRONIZATION IN DATA COMMUNICATION - A TUTORIAL REVIEW, vol. 28, no. 8, August 1980 (1980-08-01), pages 1107 - 1121
F. GARDNER: "A BPSK/QPSK Timing-Error Detector for Sampled Receivers", IEEE TRANSACTIONS ON COMMUNICATIONS, vol. 34, no. 5, 1986, pages 423 - 426, XP002007350, DOI: doi:10.1109/TCOM.1986.1096561
T. L. MARZETTA: "Noncooperative cellular wireless with unlimited numbers of base station antennas", IEEE TRANS. ON WIRELESS COMMUN., vol. 9, no. 11, November 2010 (2010-11-01), pages 3590 - 3600, XP011319544
Attorney, Agent or Firm:
MARKS & CLERK LLP (GB)
Download PDF:
Claims:
Claims

1 . A method for communicating digital data, the method comprising encoding and transmitting at least one part of the data to be communicated by:

representing at least one data value by, or associating at least one data value with, a respective frame (e.g. timeslot) from an ordered series of frames;

selectively transmitting signal data in the frame associated with or representative of the one or more data values that correspond to or are equal to the at least one part of the data to be communicated.

2. The method of claim 1 comprising generating the respective one or more data values for each respective frame of a plurality of frames.

3. The method of claim 1 or claim 2, wherein the encoding or transmitting of the at least one part of the data to be communicated comprises transmitting a selected signal data value in a selected frame, wherein the combination of the value of signal data and the selection of the frame is representative of the at least one part of the data to be communicated.

4. The method according to claim 2 or any claim dependent thereon, wherein the association between respective frames of a plurality of frames and respective data values is generated by an association generator or encoder that is configured to generate or determine random numbers or pseudo random numbers as the data values.

5. The method of claim 4, wherein the association generator is configured to associate one or more of the random or pseudo random numbers to each time frame and/or combination of time frame and signal data value.

6. The method of claim 2 or claim 3, wherein the association between respective frames of the plurality of frames and respective data values is generated by an association generator or encoder that comprises a "smart generator" configured to determine the likelihood of what a next part of the data will be, and generating or adjusting the sequence of data values accordingly.

7. The method of any preceding claim, comprising mapping the signal data in the frame onto a symbol or group of symbols and transmitting the symbol or group of symbols onto which the signal data has been mapped within the frame.

52910900-1-GMCGLASHAN

8. The method according to any preceding claim, wherein the signal data (or the symbols or groups of symbols onto which the signal data within the frame is mapped) is smaller than the data value or part of the data to be communicated (or an equivalent symbol or group of symbols that would be required to map the data to be communicated).

9. The method of claim 8, wherein

the parts of the data to be communicated comprise a plurality of bits;

the signal data comprises one or more bits; and

the signal data comprises fewer bits than the parts of the data to be communicated.

10. The method of claim 8 or claim 9, wherein the signal data takes up less space and/or require less memory to store and/or less bandwidth to transmit than the at least one part of the data to be communicated.

1 1 . The method of any preceding claim comprising dynamically varying a range or size of the data values and/or the size of the symbol constellation. 12. The method of claim 1 1 comprising dynamically varying the range or size of the data values responsive to at least one parameter of the transmitter and/or receiver and/or the associated communications channel, such as latency and/or energy consumption.

13. The method of claim 12 comprising increasing the range or size of the data values when lower energy consumption is required and reducing the range or size of the data values when lower latency is required.

14. The method of any preceding claim comprising encoding and transmitting at least one part of the data to be communicated from a sensor node or a node of the internet of things.

15. A transmission system for encoding and transmitting data, the transmission system comprising at least one transmitter for transmitting data and a transmitter data processor configured to receive data to be communicated, the transmitter data processor being configured to:

represent at least one data value by, or associate at least one data value with, a respective frame (e.g. timeslot) from an ordered series of frames; and

52910900-1-GMCGLASHAN encode at least one part of the data to be communicated by providing signal data during a frame associated with a data value that matches, corresponds to or is equal to the part of the data to be communicated. 16. The transmission system of claim 15 configured to implement the method of any of claims 1 to 14.

17. A method for decoding data that has been communicated, the method comprising: receiving signal data within a frame;

representing at least one data value by, or associating at least one data value with, a respective frame (e.g. timeslot) from an ordered series of frames;

using an association between respective frames of the ordered series of frames and respective data values to determine the data value associated with the frame within which signal data was received; and

determining the at least one part of the received data from the determined data value.

18. A receiver system for communicating or receiving data, the receiver system comprising:

at least one receiver for receiving signal data in an associated frame; and

a receiver data processor configured to:

represent at least one data value by, or associate at least one data value with, a respective frame (e.g. timeslot) from an ordered series of frames;

receive the signal data from the receiver; and

use an association between respective frames of the ordered series of frames and respective data values or portions to determine at least one part of the received data from the frame in which signal was received.

19. A communications system comprising at least one transmission system according to claim 15 or claim 16 and at least one receiver system according to claim 18.

20. A sensor node or internet of things node comprising the transmission system of claim 15 or claim 16. 21 . A computer software product or algorithm configured such that, when run on a processing apparatus, causes the processing apparatus to implement the method of any of claims 1 to 14 or the method of claim 17.

52910900-1-GMCGLASHAN

22. A processing system comprising at least one processor, data storage and a communications interface, wherein the processing system is configured to implement the method of any of claims 1 to 14 or the method of claim 17.

52910900-1-GMCGLASHAN

Description:
DATA TRANSMISSION SCHEME AND APPARATUS

Field of the invention

The present invention relates generally to a data modulation scheme for digital data communications.

Background

Wireless communication systems have to operate with an increasingly wide range of devices and applications with varying requirements and characteristics. In particular, different types of devices can be used for different applications, perform different functions and generate different types of data and as such may have different operating requirements. For example, devices might have differing energy consumption, data rate and latency requirements. It will be appreciated that some applications may require highly reliable, high rate, and low latency communications, but others may have intrinsic energy efficiency requirements that are more important than data rate and latency. For instance, sensor nodes typically have no stringent data rate requirements, and can tolerate higher latencies. Often these sensor nodes are located in remote areas where they are powered by batteries or solar cells. Hence, energy efficiency is very important in such applications. Moreover, environmental and commercial concerns result in a general requirement for increasing energy efficiencies, which also extends to communications systems. Hence, there are global interests to improve the energy efficiency of communication systems.

Furthermore, rate, latency, and energy efficiency requirements of some devices vary over time, depending on operating requirements. It would be beneficial to have a communications system that allows properties of the communications system such as rate, latency and energy efficiency to be varied , e.g. depending on current need.

In addition, security of communications is of great concern to many users. Mechanisms that improve the security of communications and make it harder for communications between devices to be intercepted are therefore generally desirable.

It is an object of at least one embodiment of the present invention to provide improved communications. It is an object of at least one embodiment of the present invention to overcome or mitigate at least one problem with the prior art. Summary

According to a first aspect of the present invention is a method for communicating data, the method comprising encoding at least one part of the data to be communicated by selectively providing signal data in a frame associated with or representative of at least one data value that matches, corresponds to or is equal to the at least one part of the data to be communicated.

The data to be communicated may be digital data. The method may comprise representing the at least one data value by, or associating the at least one data value with, a respective frame (e.g. timeslot) from the ordered series or plurality of frames. The method may comprise representing each data value of the range of data values by, or associating each data value of the range of data values with, at least one frame (e.g. timeslot) of the ordered plurality of frames.

As used herein, frame is intended to represent a subsection or part of a domain, e.g. a division of a domain, a bin, a symbol or domain segment, each of which can be used interchangeably with "frame" herein. Generally, there may be an ordered series or plurality of frames. In this case, the frame associated with or representative of the at least one data value may be comprised in the ordered series or plurality of frames. Preferably but not essentially, the domain may be or comprise the time domain, the frames may be timeslots and the ordered series or plurality of frames (e.g. timeslots) may be ordered or distributed chronologically. Preferably, the frames in the series or plurality of frames are contiguous and/or the ordered series or plurality of frames as a whole is continuous, e.g. if the frames are timeslots then the series or plurality of frames together may represent a continuous period of time. Preferably the frames are non-overlapping or exclusive. The frames may be specified or defined and identifiable at both a transmitter or transmission side and a receiver or receiving side.

The at least one data value may be comprised in a range of data values. Each frame (e.g. timeslot) may be representative of, or associated with, a data value from the range of data values.

The method may comprise mapping the signal data in the frame onto a symbol or group of symbols. The method may comprise transmitting the signal data or the symbol or group of symbols onto which the signal data has been mapped within the frame.

There may be a one-to one correspondence between the part of the data to be communicated by the transmitter, a representation of the part of the data being

52910900-1-GMCGLASHAN communicated in a communications channel between the transmitter and the receiver, and part of the data reconstructed or decoded at the receiver. It will be appreciated that the representation of the data to be communicated may be the provision of the signal data, and/or the symbol or group of symbols onto which the signal data has been mapped, within the frame.

The encoding or transmitting of the at least one part of the data to be communicated may comprise transmitting a selected value of signal data, e.g. from a plurality of possible signal data values, in a selected frame. The combination of the selected value of the signal data, e.g. from the plurality of signal data values, and the selection of the frame, e.g. from the plurality of frames, may be associated with or representative of the data value from the range of data values. In other words, the encoding of the at least one part of the data to be communicated may comprise selecting a combination of a frame for the signal data and a value of the signal data, wherein the combination is associated with, or representative of, the data value from the range of data values that matches, corresponds to or is equal to the part of the data to be communicated.

The method may comprise generating data values. The data values may be randomly or pseudo randomly generated data values, e.g. the data values may be randomly or pseudo randomly generated numbers. The data values may be generated according to an algorithm or logic and/or based on a seed. The method may comprise assigning the data value, e.g. the generated data value, to at least one of the frames, e.g. so that the data value is associated with or represented by the at least one frame to which it has been assigned. In view of the above, it will be appreciated that the method may comprise representing a part of the data to be communicated as a data value (e.g. a randomly or pseudo randomly generated number) allocated to a particular frame (e.g. timeslot) or combination of a particular frame (e.g. timeslot) and the particular value of the signal data within the particular frame (e.g. timeslot). The representation of the part of the data to be communicated may be carried out by providing the signal data in the particular frame (e.g. timeslot) or by providing the particular value of the signal data in the particular time frame (e.g. timeslot).

Specifically, the method may comprise generating data values (e.g. randomly or pseudo randomly generated numbers) and associating each generated data value with a frame (e.g. timeslot) or frame/signal data value combination. The method may comprise assigning the signal data to the particular frame (e.g. timeslot) associated with the data value (e.g. randomly or pseudo randomly generated) that matches the part of the data to be

52910900-1-GMCGLASHAN communicated. The method may comprise transmitting the particular value of the signal data in the particular frame (e.g. timeslot) or transmitting the symbol or group of symbols representative thereof. At the receiver or receiving side, the symbol or group of symbols are optionally demapped to retrieve the signal data that was transmitted within the frame (e.g. time slot). A synchronised or corresponding allocation of data values (e.g. randomly or pseudo randomly generated) to frames (e.g. time slots) may be provided or generated at the receiver or receiving side and used to determine the data value associated with the frame (e.g. timeslot) or frame/signal data value combination and thereby determine the part of the communicated data represented by the received frame (e.g. timeslot) or frame/signal data value combination.

The method may be carried out at the transmitter or transmission side of a communications system. The method may be carried out by a processing system of the transmitter. The transmitter may be or comprise a wired or wireless transmitter. The transmitter may be or comprise an optical, e.g. fibre optic or optical wireless communications (OWC) or visible light communication (VLC) or near infra-red (NIR) light communication or Li-Fi transmitter. The transmitter may be or comprise a Wi-Fi, Bluetooth, VLC, IR, or other electromagnetic radiation transmitter. The transmitter may comprise a wired transmitter. The transmitter may be an electronic or electrical signal transmitter.

The signal data may be different to the data value and/or the at least one part of the data to be communicated. The signal data (or the symbols or groups of symbols onto which the signal data is mapped) may be the same size or smaller than the data value or part of the data to be communicated (or an equivalent symbol or group of symbols that would be required to map the data to be communicated). The data values and/or the parts of the data to be communicated may be or comprise a plurality of bits. The signal data may be or comprise one or more bits. The signal data may have fewer bits than the data values and/or the parts of the data to be communicated. The signal data may take up less space and/or require less memory to store and/or less bandwidth to transmit than the data values and/or the at least one part of the data to be communicated.

The associations between frames and data values may be stored in a correspondence table, look-up table or index. The associations between frames and data values may be generated, e.g. by an association generator or encoder. The association generator or encoder may be configured to generate or determine a plurality of data values, e.g. from a range of data values.

52910900-1-GMCGLASHAN The association generator or encoder may be or comprise a random number or pseudo random number generator. The random number or pseudo random number generator may be configured to generate random numbers or pseudo random numbers within a number range, which may be used as the data values. The association generator may associate one or more of the random numbers to each time frame and/or to combinations of time frame and signal data value. The association generator or encoder may be configured to generate the data values, e.g. the random numbers or pseudo random numbers, based on a number seed, key and/or algorithm. The association generator or encoder at the transmitter or transmission side may be synchronized, e.g. time synchronous, with a receiver side association generator or encoder. The association generator or encoder at the transmitter or transmission side may be configured to generate the same sequence of numbers or data values at corresponding or identical time frames as the association generator or encoder at the receiver end. For example, the association generator or encoder at the transmitter or the transmission side may be configured to generate the data values, e.g. the random numbers or pseudo random numbers, based on the same number seed, key and/or algorithm used by the association generator or encoder at the receiver side to generate the data values, e.g. the random numbers or pseudo random numbers.

The association generator or encoder at the transmitter or transmission side may be configured to receive or communicate the association between respective frames of a plurality of frames and respective data values with the association generator or encoder at the receiver side or a processing or control device. The method may comprise providing synchronisation data or a clock signal to the association generator or encoder at the transmitter or transmission side and/or to the association generator or encoder at the receiver side. The method may comprise communicating timeframe synchronisation information between the association generators or encoders at the transmitter and receiver via non-data framing information. The synchronisation between the transmitter and receiver may comprise use of any relevant synchronisation method described in L. Franks, "Carrier and Bit Synchronization in Data Communication - A Tutorial Review," vol. 28, no. 8, pp.1 107- 1 121 , Aug. 1980, the contents of which are incorporated herein by reference as if set out in full herein. The association generator or encoder may be configured to generate sequences or ranges of data, e.g. numbers, data values, or symbols. The data values may be sequential or non-

52910900-1-GMCGLASHAN sequential. The association generator or encoder may be configured to generate the data values by scanning, sweeping or cycling over a series or range of numbers or data values.

The association generator or encoder may comprise a "smart generator", which may be configured to determine a likelihood of what a next part of the data will be, and generate or adjust the sequence of data values, e.g. the order or the rate of occurrence of the data values or the allocation to particular frames, depending on the determined likelihood of what a next part of the data will be. For example, the association generator or encoder may be configured to bias, order or prioritise the data values, so that data values that are more likely to correspond to the next part of data are favoured or prioritised. For example, if the transmitter is used to transmit temperature or other sensor data, then the data values corresponding to or proximate a most recent reading or within a threshold of the most recent reading may be prioritised or favoured, e.g. more likely to be generated or presented next or more often in the plurality of data values. In another example, if the data comprises English language text, then the data representing the most popular letters or symbols, such as space and e may be prioritised or favoured.

The method may comprise varying, e.g. dynamically varying or varying in use, the range or size (e.g. the number of bits) of the data values and/or the size of the symbol constellation, e.g. responsive to a user command or preference and/or at least one parameter of the transmitter and/or receiver and/or the associated communications channel, such as latency and/or energy consumption. For example, the method may comprise increasing the range or size of the data values when lower energy consumption is required, e.g. at the expense of higher latency. The method may comprise reducing the range or size of the data values when lower latency is required, e.g. at the expense of energy consumption.

The method may comprise using low order modulation techniques such as Binary Phase Shift Keying (BPSK). The method may comprise providing the data to the association generator or encoder at the transmitter or transmission side. The method may then comprise encoding the output of the association generator or encoder, e.g. the signal data, using a constellation mapper. The constellation mapper may be configured to map the signal data using any suitable modulation technique such as M-PAM, BPSK, QPSK, M-PSK or M-QAM. The method may comprise providing the output of the constellation mapper (e.g. the symbol or group of symbols onto which the signal data in the frame is mapped) to a transmitter processing unit, such as a baseband processing unit. The method may comprise providing the output of the

52910900-1-GMCGLASHAN transmitter processing unit to a transmitter front end. The transmitter front end may be configured to communicate the output of the transmitter processing unit (e.g. the suitably modulated and processed signal data) during the frame associated with a data value that corresponds to or is equal to the part of the data to be communicated, e.g. over the communication channel. However, it will be appreciated that one or more of the constellation mapper and/or transmitter processing unit may be omitted, or other intervening components added. For example, the output of the association generator (e.g. the signal data) may be passed directly to the transmitter front end and transmitted over the communications channel.

The communication channel may be or comprise a half-duplex or a full duplex communication channel. The method may comprise transmitting data to multi-points or multi-users. The method may comprise providing an association generator or encoder pair, e.g. at the transmitter and receiver, for each user or point.

The method may comprise transmitting from a sensor node or a node of the internet of things.

According to a second aspect of the present invention is a transmission system for encoding and transmitting data, the transmission system comprising at least one transmitter for transmitting data and a transmitter data processor configured to receive data to be communicated, the transmitter data processor being configured to encode at least one part of the data to be communicated by providing signal data during a frame associated with a data value that matches, corresponds to or is equal to the part of the data to be communicated.

The transmitter data processor may be configured to associate respective frames of a plurality of frames with respective data values. The transmission system may comprise an association generator or encoder, which may comprise a random number or pseudo random number generator, which may be configured to generate a series of random numbers or pseudo random numbers, e.g. within a range of numbers. The respective data values may be or comprise the random numbers or pseudo random numbers generated by the random number or pseudo random number generator. The transmission system or the transmitter data processor thereof may be configured to implement the method of the first aspect.

52910900-1-GMCGLASHAN According to a third aspect of the present invention is a method for communicating, decoding or receiving data that has been communicated, the method comprising receiving signal data within a frame, using an association between respective frames of a plurality of frames and respective data values to determine the data value associated with the frame within which signal data was received and determining the at least one part of the received data therefrom.

The received data may be digital data. The received data may be or comprise data that has been encoded using the method of the first aspect and/or by the transmission system of the second aspect.

The received signal data within a frame may be mapped to a symbol or group of symbols. The method may comprise de-mapping the symbol or group of symbols in order to recover the signal data within the frame.

The method may be carried out by a receiver or at a receiving side. The signal data within a frame (or the symbol or group of symbols onto which the signal data has been mapped) may have been communicated over a communications channel from a transmitter or transmission side to the receiver or receiving side.

There may be a one-to one correspondence between the part of the data communicated by the transmitter, a representation of the part of the data communicated in the communications channel between the transmitter and the receiver, and the part of the data determined at the receiver. It will be appreciated that the representation of the data to be communicated may be the signal data in the frame and/or the symbol or group of symbols onto which the signal data in the frame has been mapped.

The data value associated with the frame within which the signal data is provided may match, correspond to or be equal to the part of the received data.

The part of the data that is received may be represented by a selected value of the signal data in a selected frame. The combination of the value of the signal data and the selection of the frame may be associated with or representative of the data value from a range of data values. In other words, the at least one part of the data may be encoded by selection of a combination of a frame for the signal data and a value of the signal data, wherein the combination is associated with, or representative of, the data value from the range of data values that matches, corresponds to or is equal to the part of the data to be communicated.

52910900-1-GMCGLASHAN The method may comprise generating data values. The data values may be randomly or pseudo randomly generated data values, e.g. the data values may be randomly or pseudo randomly generated numbers. The data values may be generated according to an algorithm or logic. The method may comprise assigning a data value, e.g. a generated data value, to at least one frame, e.g. so that the data value is associated with or represented by the at least one frame to which it has been assigned.

In view of the above, it will be appreciated that a part of the data that was communicated may be represented as a data value (e.g. a randomly or pseudo randomly generated number) allocated to a particular frame (e.g. timeslot) or combination of the particular frame (e.g. timeslot) and the particular value of the signal data within the particular frame (e.g. timeslot). The part of the data that was communicated may be represented by providing signal data in the particular frame (e.g. timeslot) or by the selection of the particular combination of value of the signal data (from a plurality of values) and frame (from a plurality of frames).

The method may comprise de-mapping the symbol or group of symbols to retrieve the signal data in the particular frame (e.g. timeslot). The method may comprise generating data values (e.g. randomly or pseudo randomly generated numbers) and associating each generated data value with a frame (e.g. timeslot) or frame/signal data value combination. The method may comprise determining a data value associated with or assigned to the frame within which the signal data is provided. The determination of the data value associated with or assigned to the frame within which the signal data is provided may be synchronised or correspond with the allocation of data values (e.g. randomly or pseudo randomly generated) to frames (e.g. time slots) at the transmitter or transmission side. The part of the data that was communicated may match or correspond to the determined data value associated with or represented by the frame in which the signal data was provided or by the frame/signal data value combination.

The method may be carried out by a processing system of the receiver. The receiver may be or comprise a wired or wireless receiver. The receiver may be or comprise an optical, e.g. fibre optic or optical wireless communications (OWC) or visible light communication (VLC) or NIR light communication or Li-Fi receiver. The receiver may be or comprise a Wi- Fi, Bluetooth, VLC, IR, or other electromagnetic radiation receiver. The receiver may comprise a wired receiver. The receiver may be an electronic or electrical signal receiver.

52910900-1-GMCGLASHAN The signal data may be different to the data value and/or the at least one part of the data that was communicated. The signal data (or the symbols or groups of symbols onto which the signal data within the frame is mapped) may be the same size or smaller than the data value or part of the data that was communicated (or an equivalent symbol or group of symbols that would be required to map the data to be communicated). The data values and/or the parts of the data that was communicated may be or comprise a plurality of bits. The signal data may be or comprise one or more bits. The signal data may have fewer bits than the data values and/or the parts of the data that was communicated. The signal data may take up less space and/or require less memory to store and/or less bandwidth to transmit than the data values and/or the at least one part of the data that was communicated.

The associations between frames and data values may be stored in a correspondence table, look-up table or index. The associations between frames and data values may be generated, e.g. by an association generator or decoder. The association generator or decoder may be configured to generate or determine a plurality, e.g. range, of data values.

The association generator or decoder may be or comprise a random number or pseudo random number generator. The random number or pseudo random number generator may be configured to generate random numbers or pseudo random numbers within a number range. The random numbers or pseudo random numbers may be the data values. The association generator or decoder may associate one or more of the random numbers to each time frame and/or to combinations of time frame and signal data value. The association generator or decoder may be configured to generate the data values, e.g. the random numbers or pseudo random numbers, based on a number seed, key and/or algorithm, which may be or comprise the same number seed, key or algorithm used by a corresponding association generator or encoder at the transmitter or transmission side.

The association generator or decoder at the receiver or receiving side may be synchronized, e.g. time synchronous, with a transmission side association generator or encoder. The association generator or encoder at the transmitter or transmission side may be configured to generate the same sequence of numbers or data values at corresponding or identical time frames as the association generator or decoder at the receiver end. For example, the association generator or encoder at the transmitter or the transmission side may be configured to generate the data values, e.g. the random numbers or pseudo random numbers, based on the same number seed, key and/or algorithm used by the association

52910900-1-GMCGLASHAN generator or decoder at the receiver side to generate the data values, e.g. the random numbers or pseudo random numbers.

The association generator or encoder at the transmitter or transmission side may be configured to receive or communicate the association between respective frames of a plurality of frames and respective data values with the association generator or decoder at the receiver side. The method may comprise providing synchronisation data or a clock signal to the association generator or encoder at the transmitter or transmission side and/or to the association generator or decoder at the receiver side. The method may comprise communicating timeframe synchronisation information between the association generators or encoders/decoders at the transmitter and receiver via non-data framing information. The synchronisation between the transmitter and receiver may comprise use of any relevant synchronisation method described in L. Franks, "Carrier and Bit Synchronization in Data Communication - A Tutorial Review," vol. 28, no. 8, pp.1 107-1 121 , Aug. 1980, the contents of which are incorporated herien by reference as if set out in full herein.

The association generator or decoder may be configured to generate sequences or ranges of data, e.g. numbers, data values, or symbols. The data values may be sequential or nonsequential. The association generator or decoder may be configured to generate the data values by scanning, sweeping or cycling over a series or range of numbers.

The association generator or decoder may comprise a "smart generator", which may be configured to determine the likelihood of what a next part of the data will be, and generating or adjusting the sequence of data values, e.g. the order or the rate of occurrence of the data values or the allocation to particular frames, depending on the determined likelihood of what a next part of the data will be. For example, the association generator or decoder may be configured to bias, order or prioritise the data values, so that data values that are more likely to correspond to the next part of data are favoured or prioritised. The method may comprise varying, e.g. dynamically varying or varying in use, the range or size (e.g. number of bits) of the data values and/or the size of the symbol constellation, e.g. responsive to a user command or preference and/or at least one parameter of the transmitter and/or receiver and/or the associated communications channel, such as latency and/or energy consumption. For example, the method may comprise increasing the range or size of the data values when lower energy consumption is required, e.g. at the expense of higher latency. The method may comprise reducing the range or size of the data values when lower latency is required, e.g. at the expense of energy consumption.

52910900-1-GMCGLASHAN The method may comprise using lower order modulation techniques such as Binary Phase Shift Keying (BPSK). The method may comprise receiving the signal data in the frame or the symbol or group of symbols representative thereof at a receiver front end. The method may comprise decoding the symbol or group of symbols representative of the signal data in the frame using a constellation de-mapper. The constellation de-mapper may be configured to de-map the symbol or group of symbols using any suitable de-modulation technique such as M-PAM, BPSK, QPSK, M-PSK or M-QAM. The method may comprise providing the output of the constellation de-mapper (e.g. the signal data in the frame) to a receiver processing unit, such as a baseband processing unit. The method may comprise providing the output of the receiver processing unit to the association generator or decoder. The association generator or decoder may be configured to recover the part of the data that was communicated by determining a data value associated with the frame. It will be appreciated that one or more of the constellation de-mapper and/or receiver processing unit may be omitted, or other intervening components added. For example, the output of the receiver front end may be passed directly to the association generator or decoder. The communication channel may be or comprise a half-duplex or a full duplex communication channel. The method may comprise communicating data to multi-points or multi-users. The method may comprise providing an association generator or encoder pair, e.g. at the transmitter and receiver, for each user or point. The method may comprise receiving at a sensor node or a node of the internet of things.

According to a fourth aspect of the present invention is a receiver system for communicating or receiving data, the receiver system comprising at least one receiver for receiving signal data in an associated frame and a receiver data processor configured to receive the signal data from the receiver and use an association between respective frames of a plurality of frames and respective data values or portions to determine at least one part of the received data from the frame in which signal was received.

The receiver may comprise a processing system. The receiver may be or comprise a wired or wireless receiver. The receiver may be or comprise an optical, e.g. fibre optic or optical wireless communications (OWC) or visible light communication (VLC) or near infra-red (NIR) light communication or Li-Fi receiver. The receiver may be or comprise a Wi-Fi, Bluetooth,

52910900-1-GMCGLASHAN VLC, IR, or other electromagnetic radiation receiver. The receiver may comprise a wired receiver. The receiver may be an electronic or electrical signal receiver.

The receiver system, of the processing system thereof, may be configured to implement the method of the third aspect.

According to a fifth aspect of the present invention is a communications system comprising at least one transmission system according to the second aspect and at least one receiver system according to the fourth aspect.

According to a sixth aspect of the present invention is a communication method comprising transmitting data using the method of the first aspect and receiving the data using the method of the third aspect. According to a seventh aspect of the present invention is a sensor node comprising the transmitter of the second aspect.

According to an eighth aspect of the present invention is an internet of things node comprising the transmitter of the second aspect

According to an ninth aspect of the present invention is a computer software product or algorithm configured such that, when run on a suitable processing apparatus, causes the processing apparatus to implement the method of the first and/or third aspects of the present invention.

According to a tenth aspect is a processing system comprising at least one processor, data storage and a communications interface, wherein the processing system is configured to implement the method of the first aspect or the method of the third aspect. The processing system may be comprised in or coupled or connectable to or in communication with or configured to communicate with the transmitter of the second aspect and/or the receiver of the fourth aspect.

It should be understood that the features defined above in accordance with any aspect of the present invention or below in relation to any specific embodiment of the invention may be utilised, either alone or in combination with any other defined feature, in any other aspect or embodiment of the invention. Furthermore, the present invention is intended to cover

52910900-1-GMCGLASHAN apparatus configured to perform any feature described herein in relation to a method and/or a method of using or producing or manufacturing any apparatus feature described herein.

Brief description of the drawings

Various aspects of the invention will now be described by way of example only and with reference to the following drawings, of which:

Figure 1 is a schematic diagram of a conventional communications system;

Figure 2 is a schematic of an example of an alternative communications system; Figure 3 is a detailed schematic of a transmitter of the communications system of Figure 2;

Figure 4 is a detailed schematic of a receiver of the communications system of Figure 2;

Figure 5 is a flowchart showing a method of encoding data for transmission;

Figure 6 is a flowchart showing a method of decoding received data;

Figure 7 is an illustration of time frame encoding;

Figure 8 is a graph showing the variation in energy efficiency with data value size for various constellation sizes for the system of Figure 2;

Figure 9 is a graph showing the variation in latency with data value size for various constellation sizes for the system of Figure 2;

Figure 10 is a graph showing the variation in transmission rate with data value size for various constellation sizes for the system of Figure 2; and

Figure 1 1 is a schematic of the transmission system of Figure 2 used in an exemplary sensor array or network. Detailed description of the drawings

Figure 1 shows a block diagram of a digital communications system 5 comprising a transmitter 10 and a receiver 15. A data string 20 comprising a plurality of information bits is generated and received at a constellation mapper 25 for mapping the data to symbols for transmission. The constellation mapper 25 selects a signal point on a constellation based on the information bits. If there are M constellation signals, log 2 M bits can be transported from the transmitter 10 to the receiver 15 in a single time frame. The constellations could be either real such as M-PAM, or complex such as BPSK, QPSK, M-PSK, and M-QAM.

The output of the constellation mapper 25 is provided to a transmitter processing unit / front end 35. The specific implementation of the transmitter processing unit / front end 35 varies depending on the type of communication system 5. For example, in passband QAM

52910900-1-GMCGLASHAN communication systems, the transmitter front-end 35 includes a pulse shaping filter, RF mixer, and Digital-to-Analogue Converter (DAC). However, other suitable implementations of transmitter processing unit / front end 35 would be apparent to a person skilled in the art. The transmitter front end 35 transmits a data signal over a communications channel 40. It will be appreciated that the communications channel 40 can be wired or wireless. Examples of wired channels include copper cables and power lines. Examples of wireless channels include micro-wave, millimetre-wave, radio-wave, visible light, micro-wave and infrared channels. Advantageously, it will be appreciated that the communications channel 40 can optionally be an optical channel, with the transmitter front end comprising suitable light emitters, such as that used for optical wireless communications.

The signal transmitted over the communications channel 40 by the transmitter 10 is received by a receiver front end / processing unit 45. Again, the exact configuration and arrangement of receiver front end / processing unit 45 can vary depending on the type of communications system 5. For example, in passband QAM communication systems, the receiver front end 45 includes a carrier and timing recovery unit, RF mixer, matched filter, sampler, and Analogue-to-Digital (ADC) Converter. The output of the receiver front end / processing unit 45 is passed to a constellation de-mapper 55, which operates using the same constellation as the constellation mapper 25 in the transmitter 10, in order to recover the information bits of the original data string 20.

It will be appreciated that the system 5 of Figure 1 can represent a variety of common communication systems, including: Amplitude Shift Keying (ASK); Phase Shift Keying (PSK); Quadrature Amplitude Modulation (QAM); Frequency Shift Keying (FSK); Orthogonal Frequency Division Multiplexing (OFDM); and Single Carrier Frequency Domain Equalization (SC-FDE) systems. It will also be appreciated that the system 5 of Figure 1 can also be used to represent a multi-antenna communication system, where the transmitter front end 35 drives multiple transmit antennas or other transmission elements. Usually multiple antennas or transmitter elements are used in communication systems in order to improve the reliability and spectral efficiency of the system. A carrier recovery unit at the receiver 15 typically ensures that the carrier at the receiver 15 is in-phase with the carrier at the transmitter 10. A timing recovery unit ensures that the sampling is done at the optimum time within the symbol duration so that the signal-to-noise ratio of the sample is maximized. Examples of suitable arrangements for this can be found in L. Franks, "Carrier and Bit Synchronization in Data Communication - A Tutorial Review," vol. 28, no. 8, pp.1 107-1 121 , Aug. 1980.

52910900-1-GMCGLASHAN Whilst the communications system 5 of Figure 1 operates acceptably for a range of applications, there is a need to improve the energy efficiency of such communications systems, particularly in relation to the internet of things, which often comprises battery powered nodes, such as remote sensor nodes, for which energy efficiency and adaptability to changing conditions are critical. Furthermore, data security is an important consideration to many users, and it is desirable to protect data, particularly wirelessly transmitted data, from being intercepted.

In the system of Figure 1 , information in the form of the data string 20 is transmitted from the transmitter 10 to the receiver 15 using the signal constellation. The transmitter 10 selects a signal point on a constellation based on the information bits of the data string 20, and the receiver 15 recovers the information bits upon successful reception of the signal. In these systems, both the spectral efficiency and the energy consumption are mainly governed by the order of the signal constellation. However, both the spectral efficiency and the energy consumption are hard limited by the order of the signal constellation. As such, reducing energy consumption is difficult for communication devices that are not be able to support higher order constellations, for example, due to hardware limitations, or in channel conditions where higher order constellations cannot be supported. A modification 5' of the communications system 5 of Figure 1 is shown in Figures 2, 3 and 4. Many of the individual components of the communications system 5' of Figure 2 are similar or physically identical to those of Figure 1 , and like components are provided with like reference numerals. The modified communications system 5' of Figure 2 employs a physical layer scheme that allows properties of the communication system 5', such as energy consumption, latency and/or transmission rate, to be controlled. The modified communications system 5' also provides improved data security. The method by which data is encoded and transmitted by the transmitter 10' is illustrated with reference to Figure 5, whilst the method by which data is received and decoded by the receiver 15' is illustrated with reference to Figure 6.

As can be seen from Figures 2 and 5, the data string 20 comprising a plurality of information bits is generated and received at an association encoder 60 (step 505). The association encoder 60 encodes parts of the data string 20 using associations between a range of data values 65a-65f and respective time slots 70a-70f or associations between the data values 65a-65f and specific combinations of the time slot 70a-70f and values of signal data 75a, 75b provided within the respective time slots 70a-70f, as shown in Figure 7. The time slots

52910900-1-GMCGLASHAN 70a-70f are an example of the frames referred to in the Summary. The associations can be pre-determined or calculated on the fly.

The associations effectively provide an index or grammar that associates each time slot 70a- 70f or combination of time slot 70a-70f and signal data value 75a, 75b with a data value 65a- 65f from the range of data values. In this way, parts of the data string 20 can be encoded and transmitted by generating a data value 65a-65f for each time slot 70a-70f or for each time slot 70a-70f / signal data value 75a, 75b combination and, when the generated data value 65a-65f matches the part of the data string 20 to be transmitted, providing the associated signal data value 75a, 75b within the associated time slot 70a-70f. The associated signal data value 75a, 75b within the associated time slot 70a-70f is then mapped to symbols 77 by the constellation mapper 25 and the symbols 77 transmitted to the receiver 15' over the communications channel 40 in the associated time slot 70a-70f. At the receiver 15', the symbols 77 are de-mapped in order to recover the signal value 75a, 75b for the time slot 70a-70f. It will be appreciated that if the value of the signal data 75a, 75b and the time slot 70a-70f in which the symbol 77 representing the signal data 75a, 75b was communicated can be determined, then the associated data value 65a-65f, and thereby the part of the data string 20 being transmitted, can be determined. As indicated above and shown in Figure 7, one or more of the data values 65a-65f are associated with respective time slots 70a-70f and the value of the signal data 75a, 75b provided within a given time slot 70a-70f can optionally be used to further specify the data value 65a-65f associated with that given time slot 70a-70f. For example, if the signal data 75a, 75b can take one of two values, e.g. -1 or +1 , the transmission of one of the signal data values 75b (e.g. a -1 ) in a given time slot 70a-70f could be indicative of a data value 65a-65f of x, where x is the number that is equivalent to the data value, whilst transmission of the other value 75a (e.g. +1 ) in the time slot 70a-70f could be indicative of a data value 65a-65f of x+1 . No transmission within a time slot indicates that the next part of the data string does not equal any of the data values 65a-65f associated with that time slot 70a-70f. In this way, selection of a particular combination of time slot 70a-70f in which to provide the data signal 75a, 75b and a value of the data signal 75a, 75b can be used to encode or represent the part of the data string 20 to be transmitted.

In the Example shown in Figure 7, the first part or subset of the data string 20 is 1 100. Time slot 70e is associated with data values 1 100 and 1 101 , wherein 1 100 is specified by transmitting a symbol representing signal data of -1 within the time slot 70e and 1 101 is specified by transmitting a symbol representing signal data of +1 within the time slot 70e. In

52910900-1-GMCGLASHAN this case, since the example part of the data string 20 is 1 100, a signal data value of -1 is provided during time slot 70e in order to represent 1 100. The next part or subset of the data string 20 is 101 1. Time slot 70c is associated with data values 1010 and 101 1 , so a signal data value of +1 is provided during time slot 70c in order to represent 101 1 .

The transmitter 10' comprises a segmenter 79 that segments the data string 20 into the parts (step 510). It will be appreciated that each part of the data string 20 is effectively a subset of the data string 20 or a data block. The association encoder 60 then encodes the data string 20 for transmission a part at a time by determining which time slot 70a-70f or combination of time slot 70a-70f and signal data value 75a, 75b corresponds to each respective part of the data string 20 (step 515). The association encoder 60 does this by generating a data value 65a-65f for each time slot 75a-75f or time slot 75a-75f / signal data value 75a, 75b combination until a data value 65a-65f that is equal to the part of the data string 20 to be transmitted is generated. The associated signal data value 75a, 75b is then mapped to symbols 77 by the constellation mapper 25, which are transmitted over the communications channel 20 during the associated time slot 70a-70f, in order to represent the part or subset of the data string 20 (step 520). In other words, transmitting the symbols 77 representing the associated data signal value 75a, 75b during the associated time slot 70a-70f is used to represent the part or subset of the data string 20 during transmission. It will be appreciated that the association encoder 60 simply continues generating data values 65a-65f from the series or range of data values until communications are finished, which may include generating one or more or each of the data values 65a-65f more than once.

In embodiments in which the system 5' is configured to encode the part of the data string 20 by associating data portions or values 65a-65f with a combination of time slot 70a-70f selection and signal data value 75a, 75b selection, then it will be appreciated that there will be a plurality of data values 65a-65f associated with each time slot 70a-70f, wherein each individual data value 65a-65f that is associated with a given time slot 70a-70f is further specified by selection of a respective different value 75a, 75b of the signal data.

For each part or subset of the data string 20 in sequence, the associated value of signal data 75a, 75b in the associated time slot is communicated to the constellation mapper 25 for mapping the data to symbols for transmission by selecting a signal point (i.e. -1 or +1 in BPSK, for example) on a constellation based on the signal data. The constellation mapper 25 is essentially the same as that described above in relation to Figure 1 , other than it receives the signal data 75a, 75b and associated time slot 70a-70f information from the association generator 60, as described above in relation to Figures 2, 3, and 4, rather than

52910900-1-GMCGLASHAN directly receiving the data string 20, as in the system 5 of Figure 1 . The output from the constellation mapper 25 is then processed by the transmitter processing unit / front end 35 before being transmitted over the communications channel 40 (step 520). Again, the transmitter processing / front end 35 and the communications channel 40 are essentially physically the same as described above in relation to Figure 1 , other than the data mapped by the symbols 77 received from the constellation mapper 25 has been encoded by the association encoder 60 rather than mapping the data string 20 itself.

As shown in Figures 2, 3, 4 and 6, the data transmitted over the communications channel 40 is then received by the receiver front end / processing unit 45 (step 605) and de-mapped by the constellation de-mapper 55, essentially as described above in relation to Figure 1. However, rather than directly recovering the data string 20, the constellation de-mapper 55 instead recovers the signal data 75a, 75b that was transmitted in a specific time slot 70a-70f, which is passed to an association decoder 80.

The association decoder 80 at the receiver 15' is synchronised with the association encoder 60 at the transmitter 10'. For example, the association encoder 60 and the association decoder 80 could use a common seed and algorithm for generating pseudo random numbers or may be provided with a shared predetermined index or grammar, or the like. As such, the association decoder 80 generates data values 65a-65f for each time slot 70a-70f or time slot 70a-70f / signal data value 75a, 75b combination (step 610) that match the data values 65a-65f generated for the respective time slot 70a-70f by the association encoder 60 of the transmitter 10'. In this way, when the symbol 77 representing the signal data 75a, 75b is received during any given time slot 70a-70f, then the part of the data string 20 represented by that time slot 70a-70f or time slot 70a-70f / signal data 75a, 75b combination is equal to the data value 65a-65f generated by the association decoder 80 for that particular time slot 70a-70f or time slot 70a-70f / signal data 75a, 75b combination (step 615). The original data string 20 can then be reconstituted by combining the determined parts of the data string 20 using a desegmenter 82. Although the examples given in Figures 3 and 4 advantageously include the segmenter 79 and desegmenter 82, it will be appreciated that segmentation may not always necessary, e.g. the data string 20 may be provided in sections suitable for direct encoding. As such, the segmenter 79 and desegmenter 82 are preferable but not essential.

Beneficial but non-limiting examples of the association encoder 60 / association decoder 80 use random number modulation to generate the data values 65a-65f. In particular, the association encoder 60 and the association decoder 80 are configured to synchronously determine a series of random numbers or pseudo-random numbers (e.g. determined by a

52910900-1-GMCGLASHAN random number generation algorithm based on a random number seed) that are used as the data values 65a-65f that are associated with each data slot 70a-70f or data slot 70a-70f / signal data value 75a, 75b combination. The synchronisation may be achieved, for example, by providing the same random number generation algorithm and the same seed for determining the random numbers at the association encoder 60 and association decoder 80. Time synchronisation techniques are well known in the art and can be used to ensure that the random number generation sequence is commenced at the same time at both the association encoder 60 and association decoder 80, for example, as described in F. Gardner, "A BPSK/QPSK Timing-Error Detector for Sampled Receivers" IEEE Transactions on Communications, vol. 34, no. 5, pp. 423-426, 1986.

For example, a dedicated communication path could be provided between the association encoder 60 and association decoder 80 or synchronisation data could be communicated between the association encoder 60 and association decoder 80 over the communication channel 40 in unused time slots 70a, 70b, 70d, 70f. The size of the time slots 70a-70f effectively determines the accuracy of the synchronisation required.

An example of an implementation of the random number modulation technique is illustrated with respect to Figures 3 and 4, which respectively show the transmitter 10' and the receiver 15' in more detail. The transmitter 10' of Figure 3 comprises a constellation mapper 25 in the form of a conventional M-QAM modulator, a transmitter processor / front end 35 as well as the association encoder 60. The association encoder 60 comprises a pseudo random number generator (RNG) 85 and a comparator 90. The receiver 15' comprises a constellation de-mapper 55 in the form of a demodulator, a receiver processor / front end 45 as well as an association decoder 80 that comprises a RNG 95 and a binary adder 100. The RNGs 85, 95 at the transmitter 10' and the receiver 15' are time synchronised, e.g. by using the same random seed, and generate B bit binary sequences or vectors for each time slot. r T (t) and r R (t) are B bit pseudo random sequences generated by the RNGs 85, 95 at the transmitter 10' and the receiver 15' respectively for the f-th time slot 70a-70f. Since, both RNGs 85, 95 are synchronised (e.g. by using the same random seed), then r T (t) = r R (t). It will be appreciated that the B bit random sequences r T (t), r R (t) are equivalent to the data values 65a-65f described above.

In an optional example in which the size of the constellation M = 2 (although other values of M could be used), the modulation scheme is binary phase shift keying (BPSK). In this case, the transmitter 10' can have only two possible amplitude levels denoted +1 and -1. In each time slot 70a-70f the association encoder 60 compares its B bit data block b (i.e. the part of

52910900-1-GMCGLASHAN the data string 20) with the random number r T (t) (i.e. the data values 65a-65f associated with the time slots 70a-70f). If b ® r T (t) = 0 then the transmitter 10' transmits signal data s = 1 , and if b ® r T (t) = 1 then the transmitter 10' transmits signal data s = -1 . Otherwise the transmitter 10' does not transmit any data, implying s = 0, hence, s e {0, +1 , -1 }. In general, s e{0, Xi,...,x M }. For the example given above, which uses BPSK, Xi = 1 , and x 2 = -1. In another example shown in Figure 7, where B = 4, if fe=101 1 and r T (t) in the current time slot 70a-70f is 101 1 , then the transmitter 10' transmits signal data s = +1 , and if r t (t) in the current time slot 70a-70f is 1010, then the transmitter 10' transmits signal data s = -1 , wherein the signal data s = -1 is representative of addition of 0001 . In all other cases, the transmitter 10' does not transmit a signal. In this way, the selection of a combination of a time slot 70a-70f and a signal data value s 75a, 75b can be used to represent an associated data value b 65a-65f for transmission.

In a generalized approach, if b is the B bit binary information data vector (i.e. the part of the data string 20) to be transmitted. The association encoder 60 compares b with the pseudo random number (i.e. the data value 65a-65f) r T (t) in the f-th time slot, and if: b 0 r T (t) = k - 1 (1 ) then the transmitter 10' simply transmits the kt constellation symbol, where k e χ = {1 ).

If (1 ) is not satisfied for any k in χ, the transmitter 10' remains silent. The receiver 15' detects if a transmission has occurred or not. If the detected symbol, s =x the detected binary data sequence, b is derived as:

S = r R (t)0(/c - l) (2) Since, r R (t) = r T (t), upon successful detection of the transmitted constellation index, k, the receiver 15' can successfully recover the transmitted B-bit data vector.

The symbol transmitted as the signal data 75a, 75b is detected using a maximum likelihood estimation, or a similar suitable method that would be apparent to a person skilled in the art. In the example above in which BPSK is used, the value of the detected signal data b can be determined from the detected signal s using the relation:

52910900-1-GMCGLASHAN

If no data is transmitted, then the system 5' simply has to wait until the next time slot that is associated with the desired data.

The association encoder 60 can compare the binary information data vector b (i.e. the part of the data string 20) to be transmitted against each possible value of the data value 65a-65f (e.g. the pseudo random number) for each timeslot 70a-70f to see if the data vector b I part of the data string 20 matches the data value 65a-65f / pseudo random number for that time slot 70a-70f. However, in could be more efficient to use a modified version of this in which, if there is no match between the data vector b I part of the data string 20 and the data value 65a-65f for a given time slot 70a-70f, then that data value 65a-65f is withdrawn from consideration for subsequent time slots 70a-70f, at least until a match between a data vector b I part of the data string 20 and the data value 65a-65f is found and the data vector b I part of the data string 20 transmitted. In other words, if it has been determined that a given data vector b I part of the data string 20 is not a particular data value 65a-65f due to no match being found for a given time slot 70a-70f, then that particular data value 65a-65f will not be assigned to a subsequent time slot 70a-70f that could be used to transmit that the data vector b I part of the data string 20. This could be more efficient as the number of comparisons that need to be made can be reduced and duplicate comparisons for a given data vector b I part of the data string 20 can be avoided.

A corresponding arrangement can apply to the detection at the receiver end. In this case, if there is no transmission / detected signal in a given timeslot 70a-70f, then the data value 65a-65f for that given timeslot 70a-70f is withdrawn for consideration for subsequent timeslots 70a-70f, at least until signal is detected.

There may be a limit to this elimination of potential data values 65a-65f, set by the constellation size. The number of potential data values 65a-65f that can be eliminated cannot exceed the constellation size. So in the example where b=4 it may take at least an M=16 constellation to optimise the search efficiency gain of the additional method, since only then would it be possible to have the match at the final timeslot down to only one candidate from the list of possible values of the data values 65a-65f. Again design trade-offs may be required since there may be other system reasons for limiting the constellation size.

52910900-1-GMCGLASHAN It will be appreciated that there is no need for M to be a power of 2. As B→ \og 2 M, the random number modulation scheme reduces towards the spectral efficiency of a conventional constellation based modulation scheme and if M=2 B then the transmitter 10' transmits in every time slot. This is the highest rate, lowest latency configuration. For M<2 B , the energy efficiency is increased at the expense of latency and data rate. In this way, the configuration of the association encoder 60 (e.g. the random number modulator) can be chosen, either by fixing at the time of design, or by user selection or dynamically adjusted during operation in order to vary the compromise between data rate and latency on one hand against energy efficiency on the other by suitably selecting the number of bits B associated with each time slot 70a-70f, with the energy efficiency increasing with the value of B at the expense of data rate and latency and vice versa.

In this case, the properties of the system 5' can be beneficially tuned, either by the designer, user or automatically or manually on the fly or in use, to best suit the application or operating conditions. This can be seen by considering Figures 8, 9 and 10. Figure 8 shows the variation of energy efficiency with the number of bits B associated with each time slot for a range of constellation sizes. Figure 9 shows the variation of latency with the number of bits B associated with each time slot for a range of constellation sizes. Figure 10 shows the variation of data rate with the number of bits B associated with each time slot for a range of constellation sizes.

From this it can be seen that, from an energy efficiency perspective, increasing the number of bits B associated with each time slot while keeping the constellation order M as low as possible is preferred. However, from Figures 8, 9 and 10, both energy efficiency and latency increase and data rate decreases as B increases for a given M, and energy efficiency reduces as M increases for a given B. Therefore, system designers' can choose M and B by taking into account the fundamental trade-off between energy efficiency and latency. Optionally, the system can be reconfigured in use, by varying M and/or B and communicating the changes to M and/or B to both the association encoder 60 and association decoder 80, for example by using pre-programmed rules or algorithms or subject to user input. In this way, the system can operate using a more energy efficient configuration when latency and data rate are less critical and operate using a lower latency and higher data rate when latency/data rate are more critical.

Although the above describes a system 5' in terms of a single user, a single transmitter and a single receiver, it will be appreciated that the system 5' is straightforwardly adaptable to

52910900-1-GMCGLASHAN multi-user configurations. In particular, the encoding arrangement described above can be easily incorporated into conventional multiple access methods such as frequency division multiple access (FDMA), time division multiple access (TDMA), and orthogonal frequency division multiple access (OFDMA). Moreover, in conjunction with multi-antenna multi-user concepts (see e.g. T. L. Marzetta, "Noncooperative cellular wireless with unlimited numbers of base station antennas," IEEE Trans, on Wireless Commun., vol. 9, no. 1 1 , pp. 3590- 3600, Nov. 2010), the encoding scheme described above can also be used to accommodate a large number of co-channel devices more spectrally efficiently than FDMA and TDMA. The transmission mode that uses multiple antenna elements and serves multiple co-channel users in the same time and frequency resource is known as multi-user multiple input- multiple-output (MU-MIMO). MU-MIMO can be used to connect multiple users to an access point (AP) in the same time and frequency resource. The AP has multiple antennas and as many association encoders/decoders (e.g. comprising random number generators in the above example) as the number of co-channel users, and each association encoder/decoder at the access point is synchronized with respective associated user devices. Each user device is equipped with a transmitter 10', such as that shown in Figure 3. The received data by the antenna array is equalized prior to detection using multi-antenna equalization methods such as zero-forcing (ZF) or minimum-mean-squared-error (MMSE), or other suitable methods that would be apparent to a person skilled in the art. After equalization, the information bits pertaining to different users can again be decoded easily using the receiver, such as that shown in Figure 4.

In conventional multi-user channels, all the co-channel users use the channel all the time (e.g. as described in Marzetta, above). However, in multi-user random number modulation encoding, the number of effective co-channel users is a random process and its properties can be programmed in real-time. Since, all the users do not access the channel all the time, the co-channel interference in the system is significantly small, and can be controlled easily. Using association encoders/decoders 60, 80 that comprise pseudo random number generators 85, 95 are particularly advantageous in terms of providing not only improved control over energy efficiency, but also improved security of data transmission. In conventional communications, if the data transmitted over the communications channel 40 can be intercepted, then the transmitted data can be directly derived simply by using a suitable constellation de-mapper 55. However, in the above example, since each user device can be associated with a dedicated synchronised pair of pseudo random number generators 85, 95 at the transmitter 10' and receiver 15', even if the security of the

52910900-1-GMCGLASHAN communications channel 40 is compromised and the communications intercepted, the originally transmitted data cannot be determined unless the intercepting device is also synchronised and has the relevant random number seed and algorithms. This adds an additional layer of security to data transmissions.

Although the above example describes a particularly beneficial implementation, it will be appreciated that variations on the above scheme are possible. For example, although the above example uses a synchronised pair of pseudo random number generators 85, 95 to generate a sequence of data values that are associated with time slots or time slot/signal data value combinations, it will be appreciated that this need not necessarily be the case. For example, a pre-determined or pre-provided sequence of data values could be used instead, e.g. in the form of a look-up-table (LUT) or the like. In addition, the generation of the sequence of data values 65a-65f need not be randomly generated and could be generated by an algorithm or some other form of value or number generation.

In a particularly beneficial optional arrangement, the sequence of data values 65a-65f could be generated using a "smart" generator, in which the smart generator is provided with logic that prioritises or biases generation of data values 65a-65f that are more likely to correspond to the part of the data to be communicated. The biasing or prioritising could involve generating data values 65a-65f that are more likely to correspond to the part of the data string 20 more often than those that are less likely to correspond to the part of the data string 20, for example. This may involve the smart generator having access to context information regarding the data string 20 and biasing generation of numbers or values based on the context information. The logic and/or context information could be pre-provided, e.g. because properties of the data string 20 are predictable or known in advance, or could comprise or be derived from previously transmitted data or could be provided by an additional communication link or the like.

For example, if the data string 20 relates to sensor or monitor data such as temperature sensor data or the like, then the data string 20 could be more likely to stay constant or vary progressively rather than jump instantly. As such, the smart generator could be provided with an algorithm for generating the series of data values 65a-65f associated with time slots 70a-70f or time slot 70a-70f / signal data value 75a, 75b combinations, wherein the algorithm comprises a bias in favour of data values 65a-65f that are closer to (e.g. within a threshold range of) the most recently communicated data value 65a-65f.

52910900-1-GMCGLASHAN In another example, if the data string 20 being transmitted comprises text, then the algorithm for generating the data values 65a-65f associated with time slots 70a-70f or time slot 70a-70f / signal data value 75a, 75b combinations could be arranged so that data values 70a-70f representing more commonly used characters such as "space", "e" or T are generated more often than those that represent lesser used characters such as "q", "x" or "z".

In this way, energy efficiency savings may be achieved whilst minimising or reducing the detrimental effects on latency and data rate. The system 5' can be implemented in the physical layers of the transmitter 10' and receiver 15' and can be easily fitted, retro-fitted or adapted into existing systems, as can be seen from a simple comparison of Figure 2 with Figure 1 . Furthermore, the system 5' does not require channel state information in order to operate. As such, the system 5' is particularly beneficial for use in the "internet of things", in which various components are likely to have different requirements regarding latency, data rate and energy efficiency. In particular, as shown in Figure 1 1 , a network of various types of devices 105, including low energy requirement devices such as sensors, monitors, and the like, communicate with access points 1 10. The access points 1 10 can also communicate together in any known network configuration (although a star network configuration comprising a central hub or server is shown in Figure 1 1 , it will be appreciated that any other suitable network topology could be used). Since the use of the association encoders / decoders 60, 80 in the manner described above allows the trade-off between energy efficiency and latency/data rate to be selected or varied, the variety of devices 105, including sensors and/or monitors, can communicate using an energy efficiency / latency / date rate that best suits the type of device 105. In this way, the network as a whole can operate in a manner that maximises or improves energy efficiency whilst maintaining a required data transmission rate.

52910900-1-GMCGLASHAN