IP Library Granted Patent US 9,294,315
Granted Patent B2
US 9,294,315 · App. 13/927,089 · Granted Mar 22, 2016

Modulation and equalization in an orthonormal time-frequency shifting communications system

Inventors: Ronny Hadani (Austin, TX); Selim Shlomo Rakib (Cupertino, CA)
Assignee: Cohere Technologies, Inc.
H04L25/03343H04B1/692H04L5/0016H04L5/0044H04L23/02H04L25/03828H04L27/265H04L27/2634H04L27/2655H04L27/2697H04L25/03834
View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 9,294,315
App. No.
13/927,089
Granted
Mar 22, 2016
Kind
B2
Abstract

A method of data transmission including arranging a set of data elements into an original data frame having a first dimension of N elements and a second dimension of N elements, where N is greater than one. The method includes transforming the original data frame in accordance with a transformation matrix to form a first transformed data matrix having at least N 2 transformed data elements wherein each of the transformed data elements is based upon a plurality of the data elements of the original data frame and wherein a first dimension of the first transformed data matrix corresponds to a frequency shift axis and a second dimension corresponds to a time shift axis. A permuted data matrix is formed by permuting at least a portion of the elements of the first transformed data matrix so as to shift the at least a portion of the elements with respect to the time shift axis. The method further includes transforming the permuted data matrix using a frequency-shift encoding matrix to form a transmit frame and generating a modulated signal in accordance with elements of the transmit frame.

Claims (67)

1. A method of data transmission, comprising:

arranging a set of data elements into an original data frame having a first dimension of N elements and a second dimension of N elements, where N is greater than one;

transforming the original data frame in accordance with a transformation matrix to form a first transformed data matrix having at least N 2 transformed data elements wherein each of the transformed data elements is based upon a plurality of the data elements of the original data frame and wherein a first dimension of the first transformed data matrix corresponds to a frequency shift axis and a second dimension corresponds to a time shift axis;

forming a permuted data matrix by permuting at least a portion of the elements of the first transformed data matrix so as to shift the at least a portion of the elements with respect to the time shift axis;

transforming the permuted data matrix using a frequency-shift encoding matrix to form a transmit frame; and

generating a modulated signal in accordance with elements of the transmit frame.

2. The method of claim 1 wherein the transformation matrix comprises a plurality of base vector components.

3. The method of claim 1 further including receiving, from a receiver device, distortion information indicative of at least one of a frequency shift and a time shift.

4. The method of claim 3 further including selecting, based upon the distortion information, one of a plurality of transformation matrices to use as the transformation matrix.

5. The method of claim 3 further including selecting, based upon the distortion information, one of a plurality of encoding matrices to use as the frequency-shift encoding matrix.

6. The method of claim 3 further including pre-equalizing ones of the data elements in accordance with the distortion information.

7. The method of claim 1 wherein each of the transformed data elements includes a contribution from each of the data elements of the original data frame.

8. A method of receiving data, comprising:

receiving, on one or more carrier waveforms, signals representing a plurality of data elements of an original data frame wherein each of the data elements are represented by cyclically time shifted and cyclically frequency shifted versions of a known set of waveforms;

generating, based upon the signals, a received data frame having a first dimension of at least N elements and a second dimension of at least N elements, where N is greater than one and where each element of the received data frame includes a contribution from each of a plurality of elements of the original data frame;

wherein the first dimension corresponds to a frequency shift axis and the second dimension corresponds to a time shift axis;

performing, using a decoding matrix, an inverse transformation operation with respect to elements of the received data frame so as to yield a non-transformed matrix; and

generating, based upon the non-transformed matrix, a recovered data frame comprising an estimate of the original data frame.

9. The method of claim 8 wherein the decoding matrix is a Hermitian matrix of a transformation matrix used to transform the original data frame.

10. The method of claim 8 wherein the generating includes performing an inverse permutation operation upon elements of the non-transformed matrix, wherein the inverse-permutation operation effects a shift of the elements of the inverse-transformed matrix along a time shift axis of the non-transformed matrix.

11. A data transmitter, comprising:

an input port;

an output port;

a processor;

a memory including program code executable by the processor, the program code including:

code for receiving, at the input port, a set of data elements;

code for arranging the set of data elements into an original data frame having a first dimension of N elements and a second dimension of N elements, where N is greater than one;

code for transforming the original data frame in accordance with a transformation matrix to form a first transformed data matrix having at least N 2 transformed data elements wherein each of the transformed data elements is based upon a plurality of the data elements of the original data frame and wherein a first dimension of the first transformed data matrix corresponds to a frequency shift axis and a second dimension corresponds to a time shift axis;

code for forming a permuted data matrix by permuting at least a portion of the elements of the first transformed data matrix so as to shift the at least a portion of the elements with respect to the time shift axis;

code for transforming the permuted data matrix using a frequency-shift encoding matrix to form a transmit frame; and

code generating a modulated signal in accordance with elements of the transmit frame.

12. The data transmitter of claim 11 wherein the transformation matrix comprises a plurality of base vector components.

13. The data transmitter of claim 11 wherein the program code further includes code for receiving distortion information indicative of at least one of a frequency shift and a time shift wherein the distortion information is provided by a receiver device.

14. The data transmitter of claim 13 wherein the program code further includes code for selecting, based upon the distortion information, one of a plurality of transformation matrices to use as the transformation matrix.

15. The data transmitter of claim 13 wherein the program code further includes code for selecting, based upon the distortion information, one of a plurality of encoding matrices to use as the frequency-shift encoding matrix.

16. The data transmitter of claim 13 wherein the program code further includes code for pre-equalizing ones of the data elements in accordance with the distortion information.

17. The data transmitter of claim 11 wherein each of the transformed data elements includes a contribution from each of the data elements of the original data frame.

18. A data receiver, comprising:

a processor;

a memory including program code executable by the processor, the program code including:

code for facilitating receiving, on one or more carrier waveforms, signals representing a plurality of data elements of an original data frame wherein each of the data elements are represented by cyclically time shifted and cyclically frequency shifted versions of a known set of waveforms;

code for generating, based upon the signals, a received data frame having a first dimension of at least N elements and a second dimension of at least N elements, where N is greater than one and where each element of the received data frame includes a contribution from each of a plurality of elements of the original data frame;

wherein the first dimension corresponds to a frequency shift axis and the second dimension corresponds to a time shift axis;

code for performing, using a decoding matrix, an inverse transformation operation with respect to elements of the received data frame so as to yield a non-transformed matrix; and

code for generating, based upon the non-transformed matrix, a recovered data frame comprising an estimate of the original data frame.

19. The data receiver of claim 18 wherein the decoding matrix is a Hermitian matrix of a transformation matrix used to transform the original data frame.

20. The data receiver of claim 18 wherein the code for generating includes code for performing an inverse permutation operation upon elements of the non-transformed matrix, wherein the inverse-permutation operation effects a shift of the elements of the inverse-transformed matrix along a time shift axis of the non-transformed matrix.

21. A non-transitory computer readable medium including program instructions for execution by a processor in a data transmitter, the program instructions comprising instructions for causing the processor to:

receive, at an input port of the data transmitter, a set of data elements;

arrange the set of data elements into an original data frame having a first dimension of N elements and a second dimension of N elements, where N is greater than one;

transform the original data frame in accordance with a transformation matrix to form a first transformed data matrix having at least N 2 transformed data elements wherein each of the transformed data elements is based upon a plurality of the data elements of the original data frame and wherein a first dimension of the first transformed data matrix corresponds to a frequency shift axis and a second dimension corresponds to a time shift axis;

form a permuted data matrix by permuting at least a portion of the elements of the first transformed data matrix so as to shift the at least a portion of the elements with respect to the time shift axis;

transform the permuted data matrix using a frequency-shift encoding matrix to form a transmit frame; and

generate a modulated signal in accordance with elements of the transmit frame.

22. The non-transitory computer readable medium of claim 21 wherein the transformation matrix comprises a plurality of base vector components.

23. The non-transitory computer readable medium of claim 21 wherein the program instructions include instructions for receiving, from a receiver device, distortion information indicative of at least one of a frequency shift and a time shift.

24. The non-transitory computer readable medium of claim 23 wherein the program instructions include instructions for selecting, based upon the distortion information, one of a plurality of transformation matrices to use as the transformation matrix.

25. The non-transitory computer readable medium of claim 23 wherein the program instructions include instructions for selecting, based upon the distortion information, one of a plurality of encoding matrices to use as the frequency-shift encoding matrix.

26. The non-transitory computer readable medium of claim 23 wherein the program instructions include instructions for pre-equalizing ones of the data elements in accordance with the distortion information.

27. A non-transitory computer readable medium including program instructions for execution by a processor in a data receiver, the program instructions comprising instructions for causing the processor to:

facilitate receiving, on one or more carrier waveforms, signals representing a plurality of data elements of an original data frame wherein each of the data elements are represented by cyclically time shifted and cyclically frequency shifted versions of a known set of waveforms;

generate, based upon the signals, a received data frame having a first dimension of at least N elements and a second dimension of at least N elements, where N is greater than one and where each element of the received data frame includes a contribution from each of a plurality of elements of the original data frame;

wherein the first dimension corresponds to a frequency shift axis and the second dimension corresponds to a time shift axis;

perform, using a decoding matrix, an inverse transformation operation with respect to elements of the received data frame so as to yield a non-transformed matrix; and

generate, based upon the non-transformed matrix, a recovered data frame comprising an estimate of the original data frame.

28. The non-transitory computer readable medium of claim 27 wherein the decoding matrix is a Hermitian matrix of a transformation matrix used to transform the original data frame.

29. The non-transitory computer readable medium of claim 27 wherein the instructions for causing the processor to generate include instructions for causing the processor to perform an inverse permutation operation upon elements of the non-transformed matrix, wherein the inverse-permutation operation effects a shift of the elements of the inverse-transformed matrix along a time shift axis of the non-transformed matrix.

Assignments (3)
RELEASE OF SECURITY INTEREST Recorded Jul 10, 2025
From: NEW ENTERPRISE ASSOCIATES 14, LIMITED PARTNERSHIP
To: COHERE TECHNOLOGIES, INC.
Reel/Frame 071913/0090 →
SECURITY INTEREST Recorded Apr 1, 2020
From: COHERE TECHNOLOGIES, INC.
To: NEW ENTERPRISE ASSOCIATES 14, LIMITED PARTNERSHIP
Reel/Frame 052287/0739 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Feb 25, 2014
From: HADANI, RONNY; RAKIB, SHLOMO SELIM
To: COHERE TECHNOLOGIES, INC.
Reel/Frame 032297/0367 →
Continuity (10)
Continuation In Part 13117119 · May 26, 2011
Continuation In Part 13117124 · May 26, 2011
Provisional Application 61801398 · Mar 15, 2013
Provisional Application 61801366 · Mar 15, 2013
Provisional Application 61801435 · Mar 15, 2013
Provisional Application 61801495 · Mar 15, 2013
Provisional Application 61801994 · Mar 15, 2013
Provisional Application 61801968 · Mar 15, 2013
Provisional Application 61664020 · Jun 25, 2012
Related Publication 20140169406A1 · Jun 19, 2014