Embodiments of the present invention relate to a method of transferring data from a first device to a second device. In particular, they relate to a method of transferring data from a first device to a second device in an OFDMA-TDMA system.
In order that a communication channel between electronic devices is used and shared efficiently, various methods such as TDMA, FDMA, CDMA and OFDMA-TDMA may be used.
In an OFDMA-TDMA system, communication between electronic devices occurs within predetermined time slots. In any given time slot, one or more sub-carriers may be allocated to one or more of the electronic devices so that the available frequency bandwidth may be shared between a plurality of electronic devices. The sub-carriers allocated to a given electronic device may be different for different time slots.
In order to transfer data between electronic devices, it is necessary at the transmitting electronic device to first modulate the data with a plurality of sub-carriers.
Inverse fast Fourier transforms are then performed to convert the data from the frequency domain to the time domain so that it may be modulated with a carrier wave. Similarly, at the receiving electronic device it is necessary to perform fast Fourier transforms to convert the data (modulated with the plurality of sub-carriers) from the time domain to the frequency domain so that it may be further processed by a processor of the receiving electronic device.
One problem associated with a system such as an OFDMA-TDMA system is that the receiving device has no knowledge of which sub-carriers it should perform fast Fourier transforms on in a given time slot. Consequently, the receiving device performs fast Fourier transforms on all of the received data even if it does not contain any information for the receiving device. This may result in inefficient power consumption since the receiving device may have to perform a larger number of calculations than necessary.
It would therefore be desirable to provide an alternative system.
According to one embodiment of the invention there is provided a method of transferring data from a first device to a second device, the method comprising: receiving information at the second device; and converting first data, from the first device, from the time domain to the frequency domain using butterfly computations to produce second data, wherein the butterfly computations used are a subset of the available butterfly computations and are selected using the received information.
The method may be of transferring data from a first device to a second device in an OFDMA-TDMA system.
A butterfly computation may include a first input, a second input and an output. The output may be equal to a weighted sum of the first input and the second input. The weighted sum may be equal to the addition of the second input multiplied by a negative weighting factor to the first input. The weighted sum may be equal to the addition of the second input multiplied by a positive weighting factor to the first input. Each of the selected butterfly computations may have a different combination of first input, second input and weighting factor.
The available butterfly computations may be arranged into a plurality of parallel layers arranged sequentially. Each layer may include a plurality of butterfly computations. The first input and the second input of a butterfly computation in a layer may be each arranged to receive outputs from different butterfly computations in a preceding layer in the sequence of layers. The inputs to the butterfly computations in the initial layer of the sequence of layers may be the first data. The outputs to the butterfly computations in the final layer of the sequence of layers may be the second data. The selection of butterfly computations used in each layer of the sequence of layers may be dependent on the received information.
The information may be for defining a subset of sub-carriers, within a plurality of sub-carriers, which are allocated to a communication channel between the first device and the second device. The number of sub-carriers in the subset of sub-carriers may be equal to a power of two. Each sub-carrier of the subset may be separated from an adjacent sub-carrier of the subset by substantially the same bandwidth. The number of data items in the second data may be equal to the number of sub-carriers in the allocated subset of sub-carriers.
The first device may determine the subset of sub-carriers and transmit the information for defining the subset of sub-carriers to the second device. The first device may determine the subset of sub-carriers by using data obtained by measuring the channel condition and/or quality of service and/or data rate of each channel between the first device and the second device.
The conversion of the first data from the time domain to the frequency domain may occur at the second device.
The method may further comprise receiving a signal, modulated by the first device with information destined for the second device. The method may also further comprise demodulating the received modulated signal to produce a signal. The method may also further comprise separating the signal into data items to form the first data. The method may also further comprise demodulating the second data to produce third data corresponding to the information destined for the second device.
According to another embodiment of the invention there is provided a device comprising: a receiver for receiving information; and a processor for converting first data, from a further device, from the time domain to the frequency domain using butterfly computations to produce second data, wherein the butterfly computations used are a subset of the available butterfly computations and are selected using the received information.
A butterfly computation may include a first input, a second input and an output. The output may be equal to a weighted sum of the first input and the second input. The weighted sum may be equal to the addition of the second input multiplied by a negative weighting factor to the first input. The weighted sum may be equal to the addition of the second input multiplied by a positive weighting factor to the first input. Each of the selected butterfly computations may have a different combination of first input, second input and weighting factor.
The available butterfly computations may be arranged into a plurality of parallel layers arranged sequentially. Each layer may include a plurality of butterfly computations. The first input and the second input of a butterfly computation in a layer may each be arranged to receive outputs from different butterfly computations in a preceding layer in the sequence of layers. The inputs to the butterfly computations in the initial layer of the sequence of layers may be the first data. The outputs to the butterfly computations in the final layer of the sequence of layers may be the second data. The selection of butterfly computations used in each layer of the sequence of layers may be dependent on the received information.
The received information may be for defining a subset of sub-carriers, within a plurality of sub-carriers, which are allocated to a communication channel between the device and the further device. The number of sub-carriers in the subset of sub-carriers may be equal to a power of two. Each sub-carrier of the subset may be separated from an adjacent sub-carrier of the subset by substantially the same bandwidth. The number of data items in the second data may be equal to the number of sub-carriers in the allocated subset of sub-carriers.
The further device may determine the subset of sub-carriers. The further device may transmit the information for defining the subset of sub-carriers to the device. The further device may determine the subset of sub-carriers by using data obtained by measuring the channel condition and/or quality of service and/or data rate of each channel between the further device and the device.
The receiver may be arranged to receive a signal, modulated by the further device with information destined for the device. The receiver may be arranged to demodulate the received modulated signal to produce a signal. The receiver may be arranged to separate the signal into data items to form the first data. The processor may be arranged to demodulate the second data to produce third data corresponding to the information destined for the device.
According to a further embodiment of the invention there is provided a system comprising: a first device for transmitting information; a second device for receiving the information, wherein the second device is arranged to convert first data, from the first device, from the time domain to the frequency domain using butterfly computations to produce second data, wherein the butterfly computations used are a subset of the available butterfly computations and are selected using the received information.
The system may be an OFDMA-TDMA system.
According to another embodiment of the invention there is provided a computer program comprising program instructions for converting data from the time domain to the frequency domain and comprising means for converting first data from the time domain to the frequency domain using butterfly computations to produce second data, wherein the butterfly computations used are a subset of the available butterfly computations and are selected using received information.
According to a further embodiment of the invention there is provided a physical entity embodying the computer program as described above.
According to another embodiment of the invention there is provided an electromagnetic carrier signal carrying the computer program as described above.
According to a further embodiment of the invention there is provided a computer program comprising program instructions for causing a computer to perform the method described above.
According to another embodiment of the invention there is provided a computer program comprising program instructions which, when loaded into a computer, constitute the processor described above.
For a better understanding of the present invention reference will now be made by way of example only to the accompanying drawings in which:
The first and second electronic devices 12 & 14 may be portable telephones, such as mobile cellular telephones. Alternatively, the first and second electronic devices 12 & 14 may be personal digital assistants (PDA), laptop computers or personal computers which are provided with network adaptors and/or transceiver circuitry.
In this embodiment, the first electronic device 12 and the second electronic device 14 are in a cellular network and connected via a wireless link 16. The first electronic device 12 is a base transceiver station and the second electronic device 14 is a portable transceiver device. In other embodiments, the first electronic device 12 and the second electronic device 14 are in a personal area network (PAN) such as Bluetooth or WLAN and are portable transceiver devices.
As illustrated in
The controller 22 may be any suitable processor and is, in this embodiment, a microprocessor. The controller 22 is connected to read from and write to the memory 26. The memory 26 may be any suitable memory and may be, for example, permanent built-in memory such as flash memory or it may be a removable memory such as a hard disk, secure digital (SD) card or a micro-drive.
In the second electronic device 14, the controller 22 is also connected to a user interface 28 which enables a user to interact with the device. In the embodiment where the second electronic device 14 is a mobile cellular telephone, the user interface 28 includes a display, a microphone, a loud speaker and a user input device such as a keypad. These features are well known within the field of mobile cellular telephony and will consequently not be described in detail here.
The controller 22 is also connected to the transceiver 24 to transmit data to, and receive data from, the wireless link 16. The transceiver 24 is arranged to receive and modulate data from the controller 22 and then provide the modulated data to an antenna arrangement (not illustrated in the figures) for transmission to another electronic device via the link 16. The transceiver 24 is also arranged to receive and demodulate modulated data from the antenna arrangement and provide the demodulated data to the controller 22.
In this example, the graph 30 represents communication between the first electronic device 12, the second electronic device 14, a third electronic device and a fourth electronic device (not illustrated in
It should be noted that frequency bands 60, 62, 64, 66, 68, 70 are not used by the first electronic device 12 to communicate with one of the other electronic devices in the fourth time slot 42. In these frequency bands, the second electronic device 14, the third electronic device and the fourth electronic device may communicate with one another. Alternatively, at least one of the frequency bands 60, 62, 64, 66, 68, 70 may be unused by the electronic devices.
Therefore, it is clear from the above example that one of the advantages of a system, such as an OFDMA-TDMA system is that it enables efficient usage of the available frequency spectrum by the electronic devices.
Starting with the functions which are performed by the controller 22 in the first portion 74, the controller 22 receives third data at step 78. The third data may be any data which is to be transmitted to the second electronic device 14 via the wireless link 16. For example, the third data may be voice data, from another electronic device, which has been received by the first electronic device 12 for transmission to the second electronic device 14. In this example, the third data includes data items d1 to d8.
At step 80, each data item of the third data is modulated with a sub-carrier (c1 to c8) to produce second data. Each sub-carrier (c1 to c8) is orthogonal to each of the other sub-carriers. At step 82, an inverse fast Fourier transform is performed on each data item of the second data to convert each of the data items from the frequency domain to the time domain and thereby produce first data.
In the second portion 76 of the flow diagram, the transceiver 24 receives the first data and performs a summation on them at step 84 to produce a signal 86. At step 88, the signal 86 is modulated with a carrier wave cf and is then provided to the antenna arrangement as a modulated signal for transmission to another electronic device via the cellular network 20 (or to the second electronic device 14 via the link 16).
In the following example, the receiver is the second electronic device 14 (a portable electronic device) which is arranged to receive the modulated signal from the first electronic device described with reference to
Starting with the functions which are performed by the transceiver 24 in the first portion 92, at step 96 the transceiver 24 receives the modulated signal from the first device 12 and demodulates it to produce the signal 86. At step 98 the transceiver 24 splits the signal 86 up to form the first data described above.
In the second portion of the flow diagram at step 100, the controller 22 receives the first data from the transceiver 24 and performs a fast Fourier transform on it to convert it from the time domain to the frequency domain and thereby produce second data. The controller 22 then demodulates the second data at step 102 to recover the third data (including data items d1 to d8) described above with reference to
One problem associated with this method is that the receiving device has no knowledge of which sub-carriers it should fast Fourier transform.
Consequently, the controller 22 is required to fast Fourier transform all of the first data even if it does not contain any information for the receiving device.
For example, even if the first device 12 only transmits modulated data items d1 and d5 (modulated with sub-carriers c1 and c5 respectively for example) to the second device 14, the second device 14 still performs the same number of fast Fourier transforms on the received first data as if it had received first data corresponding to data items d1 to d8. This problem may result in inefficient power consumption since the controller 22 may have to perform a larger number of calculations than necessary.
A butterfly 104 has a first input x1, a second input x2, a first possible output y1 and a second possible output y2. The butterfly 104 includes two possible ‘butterfly computations’. A butterfly computation includes a first input x1, a second input x2 and an output which is equal to a weighted sum of the first input x1 and the second input x2. For a first butterfly computation (y1), the weighted sum is equal to the summation of the first input x1 and the second input x2 multiplied by a weighting factor +w. For a second butterfly computation (y2), the weighted sum is equal to the summation of the second input x2 multiplied by a weighting factor −w and the first input x1.
In this embodiment, the first electronic device 12 transmits third data, d1 and d5 only to the second electronic device 14. Prior to transmitting the third data, d1 and d5 to the second electronic device 14 however, the first electronic device 12 determines which sub-carriers are to be allocated to the communication channel 16 between the first electronic device 12 and the second electronic device 14 for the transmission of the third data. The first electronic device 12 determines which sub-carriers to allocate to the communication channel by using data obtained by measuring the channel condition and/or quality of service and/or data rate of each available channel between the first electronic device 12 and the second electronic device 14. The allocated sub-carriers are a subset of the available sub-carriers and in one embodiment, each sub-carrier of the subset is separated from an adjacent sub-carrier of the subset by substantially the same bandwidth. In one embodiment, the number of sub-carriers allocated to the communication channel is equal to a power of two.
In this embodiment, the first electronic device 12 determines that sub-carriers c1 and c5 are most suitable for use and allocates them to the communication channel. It should be noted that in this embodiment, the number of sub-carriers in the subset of sub-carriers is equal to a power of two. The first electronic device 12 then transmits this information 110 to the second electronic device 14 via a signalling channel. In this embodiment, the information 110 includes an indication of the first allocated sub-carrier (i.e. c1 in this example) and the number of sub-carriers allocated to the channel (two in this example). The first electronic device 12 subsequently modulates the third data d1 and d5 with the sub-carriers c1 and c5 respectively and performs steps 82, 84 and 88 mentioned above with reference to
The flow diagram illustrated in
In the second portion of the flow diagram at step 108, the controller 22 receives the information 110 and determines that the first allocated sub-carrier is c1 and that the other allocated sub-carrier is c5. The controller 22 also receives the first data 107 from the transceiver 24 and performs a plurality of butterfly computations on it to convert it from the time domain to the frequency domain and thereby produce second data 109. The butterfly computations used are a subset of the available butterfly computations and are selected using the received information 110 regarding the allocated sub-carriers. The controller 22 then demodulates the second data at step 102 to recover the third data, d1 and d5.
Embodiments of the present invention provide an advantage in that they may reduce power consumption at the receiving device. This advantage arises from the fact that the controller 22 at the receiving device may perform only a subset of butterfly computations of the available butterfly computations.
The butterfly computations available for use by the controller 22 are sequentially arranged into a first layer 114, a second layer 116 and a third layer 118. The first layer 114, the second layer 116 and the third layer 118 are parallel to one another and arranged so that the output from the first layer 114 is the input to the second layer 116 and the output of the second layer 116 is the input to the third layer 118. The input to the first layer 114 is the first data 107 and the output from the third layer 118 is the second data 109.
The selection of butterfly computations used in each layer of the sequence of layers by the controller 22 is dependent upon the received information 110. In this embodiment, the received information 110 informs the controller 22 of the second electronic device 14 that the allocated sub-carriers are c1 and c5. The controller 22 of the second electronic device 14 uses the information regarding the allocated sub-carriers to perform only the butterfly computations necessary to produce the required second data 109. In this embodiment, the second data includes data items which correspond to the data items d1 and d5 modulated with the sub-carriers c1 and c5 respectively.
In the first layer 114, the controller 22 receives the first data 107 from the transceiver 24 as eight inputs x1 to x8. Using the received information 110 regarding the allocated sub-carriers, the controller 22 performs four butterfly computations from the available eight butterfly computations. For example, in butterfly 112 the butterfly computation of x1+wx2 is used (drawn in a solid line) whereas the butterfly computation of x1−wx2 is not used (drawn in a broken line). The output of the first layer 114 is (x1+wx2), (x3+wx4), (x5+wx6) and (x7+wx8).
In the second layer 116, the controller 22 performs two butterfly computations on the four outputs from the first layer 114 to produce two outputs [(x1+wx2)+w(x3+wx4)] and [(x5+wx6)+w(x7+wx8)]. In the third layer 118, the controller 22 performs two butterfly computations on the two outputs from the second layer 116 to produce a first output 120 equal to {[(x1+wx2)+(x3+wx4)]+w[(x5+wx6)+(x7+wx8)]} and a second output 122 equal to {[(x1+wx2)+(x3+wx4)] w[(x5+wx6)+(x7+wx8)]}.
In the first layer 114, the controller 22 receives the first data 107 from the transceiver 24 as eight inputs x1 to x8. Using the received information regarding the allocated sub-carriers, the controller 22 performs four butterfly computations from the available eight butterfly computations. The output of the first layer 114 is (x1+wx2), (x3+wx4), (x5+wx6) and (x7+wx8).
In the second layer 116, the controller 22 performs four butterfly computations on the four outputs from the first layer 114 to produce four outputs [(x1+wx2)+w(x3+wx4)], [(x1+wx2)−w(x3+wx4)], [(x5+wx6)+w(x7+wx8)] and [(x5+wx6)−w(x7+wx8)].
In the third layer 118, the controller 22 performs four butterfly computations on the four outputs from the second layer 116 to produce a first output 124 equal to {[(x1+wx2)+(x3+wx4)]+w[(x5+wx6)+(x7+wx8)]}, a second output 126 equal to {[(x1+wx2)— (x3+wx4)]+w[(x5+wx6)— (x7+wx8)]} a third output 128 equal to {[(x1+wx2)+(x3+wx4)]−w[(x5+wx6)+(x7+wx8)]} and a fourth output 130 equal to {[(x1+wx2)— (x3+wx4)]−w[(x5+wx6)— (x7+wx8)]}.
In the first layer 114, the controller 22 receives the first data 107 from the transceiver 24 as eight inputs x1 to x8. Using the received information regarding the allocated sub-carriers, the controller 22 performs eight butterfly computations. The output of the first layer 114 is (x1+wx2), (x1−wx2), (x3+wx4), (x3−wx4), (x5+wx6), (x5−wx6), (x7+wx8) and (x7−wx8).
In the second layer 116, the controller 22 performs six butterfly computations on the eight outputs from the first layer 114 to produce six outputs [(x1+wx2)+w(x3+wx4)], [(x1−wx2)+w(x3−wx4)], [(x1+wx2)−w(x3+wx4)], [(x5+wx6)+w(x7+wx8)], [(x5−wx6)+w(x7−wx8)] and [(x5+wx6)—w(x7+wx8)].
In the third layer 118, the controller 22 performs six butterfly computations on the six outputs from the second layer 116 to produce a first output 132 equal to {[(x1+wx2)+(x3+wx4)]+w[(x5+wx6)+(x7+wx8)]}, a second output 134 equal to {[(x1−wx2)+(x3−wx4)]+w[(x5−wx6)+(x7−wx8)]}, a third output 136 equal to {[(x1+wx2)— (x3+wx4)]+w[(x5+wx6)— (x7+wx8)]}, a fourth output 138 equal to {{[(x1+wx2)+(x3+wx4)]−w[(x5+wx6)+(x7+wx8)]}, a fifth output 140 equal to {[(x1−wx2)+(x3−wx4)]−w[(x5−wx6)+(x7−wx8)]} and a sixth output 142 equal to {[(x1+wx2)— (x3+wx4)]−w[(x5+wx6)— (x7+wx8)]}.
With reference to
The computer program instructions provide: means 22 for converting first data from the time domain to the frequency domain using butterfly computations to produce second data, wherein the butterfly computations used are a subset of the available butterfly computations and are selected using the received information.
The computer program instructions may arrive at the electronic devices 12, 14, 16, 18 via an electromagnetic carrier signal 21 or be copied from a physical entity 23 such as a computer program product, a memory device or a record medium such as a CD-ROM or DVD.
Although embodiments of the present invention have been described in the preceding paragraphs with reference to various examples, it should be appreciated that modifications to the examples given can be made without departing from the scope of the invention as claimed. For example, in one embodiment, the second electronic device 14 (portable electronic device) is the transmitting device and the first electronic device (12) is the receiving device and performs the methods illustrated in
Whilst endeavoring in the foregoing specification to draw attention to those features of the invention believed to be of particular importance it should be understood that the Applicant claims protection in respect of any patentable feature or combination of features hereinbefore referred to and/or shown in the drawings whether or not particular emphasis has been placed thereon.