# Patent

## Title
Tone count selection

## Abstract

In a device or system, a total tone count is determined or selected for modulating a data payload. Two or more code words are interleaved into the data payload, and the data payload is transmitted on a channel of the device or system.

## Background
RELATED APPLICATION
This application is a continuation of and claims priority to U.S. patent application Ser. No. 14/630,924 filed on Feb. 24, 2015 and entitled “Tone Count Selection,” which is a continuation of and claims priority to U.S. patent application Ser. No. 13/136,523 filed on Aug. 8, 2011 and entitled “Tone Count Selection,” which is a divisional of and claims priority to U.S. patent application Ser. No. 12/655,051, filed on Dec. 22, 2009, and entitled “Tone Count Selection.”


BACKGROUND
Orthogonal frequency division multiplexing (OFDM) provides a useful way to modulate data for transmission. OFDM may be considered a form of digital multi-carrier modulation. A large number of orthogonal sub-carriers are used to carry data. Data for transmission is then divided into several parallel data streams for transmission. Each of the sub-carriers may in turn be modulated using binary phase-shift keying (BPSK), quadrature phase-shift keying (QPSK), quadrature amplitude modulation (QAM), and so forth.
An OFDM system uses several carriers, or “tones,” for functions including data, pilot, guard, and nulling. Data tones are used to transfer information between the transmitter and receiver via one of the channels. Pilot tones are used to maintain the channels, and may provide information about time/frequency and channel tracking. Guard tones may be inserted between symbols to during transmission to avoid inter-symbol interference (ISI), such as might result from multi-path distortion. These guard tones also help the signal conform to a spectral mask. The nulling of the direct component (DC) may be used to simplify direct conversion receiver designs.
Selecting tone for use within a given OFDM system has proven problematic, particularly when constraints such as reuse of existing OFDM components are included.



BRIEF DESCRIPTION OF THE DRAWINGS
The detailed description is described with reference to accompanying figures. In the figures, the left-most digit(s) of a reference number identifies the figure in which the reference number first appears. The same numbers are used throughout the drawings to reference like features and components.
FIG. 1 is an illustrative architecture of a tone selection module and OFDM modules using selected tones.
FIG. 2 is a flow chart of a process for selecting tones for use by an OFDM module.
FIG. 3 is an example script for selecting tones for use by an OFDM module.
FIG. 4 is a table of illustrative possible configurations for an OFDM system having an 80 MHz bandwidth.
FIG. 5 is a table of possible allocations for new modulation and coding types, based on a portion of the possible configurations of FIG. 4.



DETAILED DESCRIPTION
Overview
OFDM is used for modulating communications both for wired and wireless devices. As described above, an OFDM system uses selected tones for operation. These tones may be used for data, pilot, guard, DC, and other functions.
Demands for higher capacity communications may result in modifications to OFDM systems to increase capacity. It is beneficial for these modifications to make use of existing code and hardware where possible. For example, in a wireless OFDM system a deployed interleaver/deinterleaver may be re-used in an OFDM system using larger bandwidth with minimal modification. This re-use minimizes development costs and risk associated with new technologies.
Disclosed in this application is a system and techniques suitable for selecting tones for use by an OFDM system, such that existing OFDM components may be leveraged and re-used with minimal or no changes. In one example, a wireless communication system using OFDM with a 40 MHz channel bandwidth may be extended to 80 MHz, increasing the data transmission capacity of the system.
Illustrative Architecture
FIG. 1 is an illustrative architecture 100 of a tone selection module and OFDM modules using the selected tones. A device 102(1) is shown with an orthogonal frequency division multiplexing (OFDM) module 104(1) which is coupled via a wired connection 106 to an OFDM module 104(2) in a device 102(2). OFDM module 104 is configured to generate an OFDM signal. Also shown is a wireless device 102(3) having an OFDM module 104(3) which is wirelessly coupled to OFDM module 104(C) in device 102(D). Each device 102(1)-(D) includes a transmitter, receiver, or transceiver to convey output from one OFDM 104 module to another OFDM module 104. These transmitters, receivers, or transceivers may be configured to convey the output via an electrical conductor, electromagnetic radiation, or both. Each device 102(1)-(D) includes one or more processors (not shown) and a memory (not shown) coupled to the processor. This processor may be configured to execute instructions stored in the memory.
Devices 102(1)-(D) may include wireless access points, radio frequency transceivers, software defined radios, modems, interface cards, cellular telephones, portable media players, desktop computers, laptops, tablet computers, netbooks, personal digital assistants, servers, standalone transceiver interfaces, and so forth.
A tone selection module 110 may be present within device 102(4). Tone selection module 110 generates and may output one or more OFDM tone configurations 112. These tone configurations 112 meet one or more pre-determined constraints. In one implementation, constraints may include ability to re-use an existing interleaver/deinterleaver, specific modulation such as 256-QAM, and so forth. The process utilized by the tone selection module 110 is discussed in more detail below with regards to FIGS. 2 and 3.
Tone configuration 112 may then be implemented within OFDM modules 104(1)-(C) for use in transferring information between two or more devices 102(1)-(D). As described above, the tones in the tone configuration 112 may be selected to facilitate re-use of existing components such as the interleaver/deinterleaver.
FIG. 2 is a flow chart for an example process 200 for selecting tones with a tone selection module 110. Selected tones may be used by an OFDM module 104. The order in which the method is described is not intended to be construed as a limitation, and any number of the described method blocks can be combined in any order to implement the method, or alternate method. Additionally, individual blocks can be deleted from the method without departing from the spirit and scope of the subject matter described herein. Furthermore, the method can be implemented in any suitable hardware, software, firmware, or a combination thereof, without departing from the scope of the invention.
At block 202, the tone selection module 110 accepts a selection of a number of data subcarriers NSD to test. NSD may be selected to maintain compatibility with an existing OFDM system. For example, an OFDM system with a 40 MHz channel bandwidth may be modified to 80 MHz channel bandwidth to increase data capacity. For the following examples, assume at least 1 tone is assigned to DC, at least 7 tones will be utilized for guard, and the 40 MHz system uses 108 data tones. Doubling the channel bandwidth from 40 MHz to 80 MHz would double the number of data tones, thus NSD=2*108=216 data tones.
At block 204, a number of coded bits per symbol NCBPS=NSD*M is computed where M comprises a modulation order. This modulation order may be used to represent characteristics of the subcarrier modulation. In one implementation, the modulation order may comprise one of the following integer values:
1 for a binary phase-shift keying (BPSK) modulation;
2 for a quadrature phase-shift keying (QPSK) modulation;
4 for quadrature amplitude modulation (QAM) with 16 states (16-QAM);
6 for QAM with 64 states (64-QAM);
8 for QAM with 256 states (256-QAM); or
10 for QAM with 1024 states (1024-QAM).
Continuing the example above, assume BPSK will be assessed initially. Thus, NCBPS=NSD*M=216*1=216 coded bits per symbol. At block 206, a number of coded bits per single carrier NBPSCS=NCBPS/NSD is calculated. Continuing the example from above, NBPSCS=216/216=1. At block 208, NROW=y*NBPSCS is computed, where y is an assigned interleaver parameter. Thus, the number of rows in an OFDM interleaver are y*NBPSCS. As shown below with regards to table 20-16, in some OFDM systems where y=4, NROW=4*NBPSCS, while in other systems where y=6, NROW=6*NBPSCS, and so forth. Given a specified NROW and NBPSCS, y may be determined.
In an OFDM module 104, an interleaver intersperses constituents of two or more codewords together before transmission on a channel. A deinterleaver reverses this process. In some implementations a modified version of an interleaver used in Institute of Electrical and Electronics Engineers (IEEE) 802.1-compliant OFDM systems may be used. This channel interleaver is defined in section 20.3.11.7.3 of the IEEE P802.11n/D6.0, “Draft Standard for Information Technology-Telecommunications and information exchange between systems—Local and metropolitan area networks—Part 11: Wireless LAN Medium Access Control (MAC) and Physical Layer (PHY) specifications.” From this text, interleaver parameters from Table 20-16 “Number of Rows and columns in the interleaver” are shown below.











TABLE 20-16







Bandwidth
20 MHz
40 MHz









NCOL
13
18



NROW
4* NBPSCS
6* NBPSCS



NROT
11
29










These parameters define the number of coded symbols stored in the interleaver. Continuing the example above for expanding from a 40 MHz channel bandwidth to 80 MHz channel bandwidth, the existing interleaver and associated algorithms may be reused. Such reuse calls for modification of the interleaver to accommodate a matrix defined to write and read data in the OFDM system with the greater channel bandwidth. These parameters include NROW and NCOL which define the number of coded symbols stored in the interleaver. Thus, continuing the example, NROW=9*1=9. In accommodating the larger matrix, NROT is used to define a rotation of values when more than one spatial stream exists. NROT may be ignored because it does not define the interleaver size and thus does not affect tone selection.
At block 210, INTDIM=NROW*NCOL is computed. In this example, assuming NCOL=24 (as shown below with regards to FIG. 4) then INTDIM=9*24=216. At block 212,




  Z
  =
  
    
      N
      CBPS
    
    
      INT
      DIM
    
  




is computed. In this example, Z=216/216=1.

At block 214, M1=Z−[Z] is computed. Continuing the example, Z=1−1=0. At block 216, a number of data bits per symbol NDBPS=r*NCBPS, where r is a code rate, is computed. Code rate indicates the portion of non-redundant information present when data is encoded. For this example, assume a code rate of 1⁄2, indicating that half of the data actually transmitted is non-redundant, while the other half is redundant such as may be included due to error correction protocols. Thus, NDBPS=1⁄2*216=153. At block 218, M2=NDBPS−└NDBPS┘. In this example, M2=153−└153┘=0.
Certain tone selections may fail to work properly with certain modulation techniques. Thus, it may be useful to test configurations to confirm a particular combination of code rate and modulation is valid. A particular combination may be considered valid when that combination will function using an existing or minimally extended OFDM component, such as an interleaver. In other words, will a particular combination of code rate and modulation work with a given tone selection? For example, in some OFDM systems, non-integer numbers of bits cannot be processed due to the mapping done in encoding, modulation. It is possible with certain selections of coding, modulation and tone selection that the test at block 214 passes, but the result is a non-integer number for NDBPS results. An information bit must be a full bit, as OFDM cannot encode information in a partial bit. In some implementations, bit padding may be used to take non-integer numbers of bits and add additional bits to produce an output with an integer number of bits.
When bit padding is not in use, the constraints as shown within the dotted line at 220 may be used to limit output of tone selections to those which have integer numbers of bits. This may also limit code rates which are available. For example, using 256-QAM, code rates of 2⁄3 and 5⁄6 may not be available without extensive modification to existing OFDM systems. Such modification may render the resulting OFDM system incompatible with prior OFDM systems.
At block 222, a test is performed to determine if M1=0. When this test is true, block 224 tests to determine if M2=0. As mentioned above, in some implementations where bit padding is available, or these constraints shown within 220 otherwise do not apply, they may be omitted. Continuing the above example, M1=0 and M2=0, therefore the configuration is valid. When block 222 or 224 result in a false output, the process may continue to block 228 below to determine if all tone counts have been tested.
At block 226, a resulting tone selection may be saved as a valid configuration. The previous acts may be looped until all available tone counts are tested. At block 228, when all tone counts have been tested, the process then proceeds to block 230 and the search concludes. Results from this process may then be stored to computer-readable storage media, presented to a user, and so forth.
When block 228 determines tone counts remain to be tested, at block 232 NSD=NSD−1 is computed. The results may be returned to block 204 for the process to continue until all tone counts have been tested.
FIG. 3 is an example script for selecting tones for use by the OFDM module 104. This script is written for use with the MATLAB simulation tool for one implementation of a tone count selection module 110. MATLAB is a product of The MathWorks Inc. of Natick, Mass. This script is provided as an example, not as a limitation.
Within this script, the process iterates over a set of possible data tones in the range of 216 to 248. The 216 value was chosen as described above. Legacy OFDM systems used a total of 64 tones in conjunction with a 20 MHz channel bandwidth, and 128 tones in conjunction with a 40 MHz channel bandwidth. In order to reuse the same tone spacing of the legacy systems and thus maximize reuse of hardware and software, an 80 MHz channel bandwidth system would use 256 tones. Given this constraint of 256 tones, 248 is chosen because with 256 tones total, only 8 tones would be available for other uses including pilot, guard, and DC. Given that 8 tones may be impractically limiting for an OFDM system, 248 was selected in this example as an upper bound.
Next, an inner loop iterates over the NCOL interleaver dimension. In this example, this loop iterates from 1 to 12, which maps a column size of 18 to 30 in an interleaver. In a wireless protocol defined by specification IEEE 802.11, the column size was 13 for 20 MHz bandwidth and 18 for 40 MHz bandwidth, thus a range of 18 to 30 is appropriate for an OFDM system having an 80 MHz bandwidth.
The next inner loop is for the NROW count, which is allowed to run from 6 to 12 in this example. In the wireless protocol defined by specification IEEE 802.11, the row multiplier is 4 for 20 MHz, 6 for 40 MHz, thus a range of 6 to 12 is appropriate for 80 MHz. The next two inner loops are for the modulation and code rate. The code rate may be selected based on the modulation type.
FIG. 4 is a table of illustrative possible configurations 400 generated using the script of FIG. 3 for an OFDM system having an 80 MHz bandwidth. In some implementations, these tone configurations 112 may be applied to a wireless networking protocol using OFDM, including but not limited to those related to the IEEE 802.11 standard. In generating this table of configurations 400 the following assumptions were made of an 80 MHz bandwidth OFDM system having tone spacing, modulation, and coding rates present in existing systems. These constraints are included to maximize reuse of software and hardware designs, and may also provide an avenue for backward compatibility.
Based on this configuration and assuming no changes in the 80 MHz system for coding or modulation, several configurations shown at 400 are possible. In one implementation, the same tone assignment for the guard tones, pilot tones, and DC as in a 40 MHz system may be used. For example, in the 40 MHz system there are 11 guard, 6 pilot, and 3 DC tones, for a total of 20 tones. Therefore, data tone assignments larger than 256−20=236 are not available.
In another implementation, a 234 data tone configuration may be suitable. This configuration allows an additional 2 tones to be allocated to pilot, guard, or other use. In another implementation, 232 tones may be allocated, which would provide 4 additional tones for pilot or guard functions.
FIG. 5 is a table 500 of possible tone configurations based on a portion of the possible configurations of FIG. 3. In a wireless networking system, additional code rates and modulation types may be included to increase peak data rates. In the table 500, a 256 state QAM modulation and a 1024 state QAM as well as a code rate of r=7⁄8 have been introduced.
Given the 256-QAM and 1024-QAM and a code rate r=7⁄8, the process of FIG. 2 as implemented by the script of FIG. 3 may be used to determine possible tone configurations 112. The configurations of the table 500 are focused on tone counts under the 236 tone count arrived above, and above a tone count of 230. When NSD=234 all code rates 3⁄4, 5⁄6, and 7⁄8 are available, providing flexibility in selection. In comparison, when NSD=232 only the 3⁄4 and 7⁄8 code rates are supported.
CONCLUSION
Although specific details of illustrative methods are described with regard to the figures and other flow diagrams presented herein, it should be understood that certain acts shown in the figures need not be performed in the order described, and may be modified, and/or may be omitted entirely, depending on the circumstances. As described in this application, modules and engines may be implemented using software, hardware, firmware, or a combination of these. Moreover, the acts and methods described may be implemented by a computer, processor or other computing device based on instructions stored on memory, the memory comprising one or more computer-readable storage media (CRSM).
The CRSM may be any available physical media accessible by a computing device to implement the instructions stored thereon. CRSM may include, but is not limited to, random access memory (RAM), read-only memory (ROM), electrically erasable programmable read-only memory (EEPROM), flash memory or other solid-state memory technology, compact disk read-only memory (CD-ROM), digital versatile disks (DVD) or other optical disk storage, magnetic disk storage or other magnetic storage devices, or any other medium which can be used to store the desired information and which can be accessed by a computing device.

## Claims

1. A method performed by a communication device configured to operate over different channel bandwidths, the method comprising:
determining whether bit padding is available;
in response to determining that bit padding is unavailable, iterating through a plurality of total data tone counts to determine particular tone data counts that satisfy:





  
    
      
        
          N
          CBPS
        
        
          INT
          DIM
        
      
      -
      
        ⌊
        
          
            N
            CBPS
          
          
            INT
            DIM
          
        
        ⌋
      
    
    =
    0
  
  ,
  
    

  
  ⁢
  
    
      
        N
        DBPS
      
      -
      
        ⌊
        
          N
          DBPS
        
        ⌋
      
    
    =
    0
  
  ,




and
where NCBPS is a number of coded bits per symbol, INTDIM is a number of coded symbols stored in an interleaver, and NDBPS is a number of data bits per symbol; and
selecting a total data tone count, from among the particular tone data counts, for modulating a data payload in accordance with orthogonal frequency division multiplexing (OFDM) transmission in an OFDM system over an identified one of the channel bandwidths.

2. The method of claim 1, further comprising:
interleaving two or more codewords in the data payload before transmission on a channel of the identified channel bandwidth using the interleaver, wherein the number of coded symbols stored in the interleaver is proportional to an assigned interleaver parameter times a number of coded bits per single carrier.

3. The method of claim 1, further comprising:
determining whether iteration through the plurality of total data tone counts has been completed, and
in response to determining that iteration through the plurality of total data tone counts has been completed, presenting the particular tone data counts on a display.

4. The method of claim 1, further comprising:
after completing iteration through the plurality of total data tone counts and determining that no particular tone data counts were determined, presenting on a display the plurality of total data tone counts and an indication that no particular tone data counts were determined.

5. The method of claim 1, further comprising:
in response to determining that bit padding is available, selecting the total data tone from among the plurality of total data tone counts free from iterating through the plurality of total data tone counts to determine the particular tone data counts.

6. The method of claim 1, further comprising:
determining whether a set of the particular tone data counts result in a non-integer number of data bits per symbol;
determining that non-integer numbers of bits are unable to be processed in the OFDM system; and
limiting selection of the total data tone count to avoid selection of the set of the particular tone data counts in response to determining that non-integer numbers of bits are unable to be processed and that bit padding is unavailable.

7. The method of claim 1, wherein:
the number of coded bits per symbol is equal to a number of data subcarriers times a modulation order, and
the number of data bits per symbol is a code rate times the number of coded bits per symbol.

8. The method of claim 7, further comprising:
determining whether a set of the particular tone data counts result n a non-integer number of data bits per symbol;
determining that non-integer numbers of bits are unable to be processed in the OFDM system; and
limiting selection of code rates in response to determining that non-integer numbers of bits are unable to be processed and that bit padding is unavailable.

9. The method of claim 1, further comprising:
reusing the interleaver when expanding from a smaller channel bandwidth to a larger channel bandwidth by modifying the interleaver to accommodate a matrix defined to write and read data in the OFDM system with the greater channel bandwidth.

10. The method of claim 9, wherein:
parameters of the matrix comprise NROW and NCOL, which define a number of coded symbols stored in the interleaver, and Nor, which defines a rotation of values when more than one spatial stream exists, a size of the interleaver is independent of NROT, and NROT is ignored when selecting the total data tone count.

11. An apparatus of a communication device, the apparatus comprising:
processing circuitry configured to:
iterate, when predetermined conditions are met, through a plurality of total data tone counts to determine particular tone data counts that satisfy:






  
    
      
        
          N
          CBPS
        
        
          INT
          DIM
        
      
      -
      
        ⌊
        
          
            N
            CBPS
          
          
            INT
            DIM
          
        
        ⌋
      
    
    =
    0
  
  ,
  
    

  
  ⁢
  
    
      
        N
        DBPS
      
      -
      
        ⌊
        
          N
          DBPS
        
        ⌋
      
    
    =
    0
  
  ,



 and
where NCBPS is a number of coded bits per symbol, INTDIM is a number of coded symbols stored in an interleaver, and NDBPS is a number of data bits per symbol;
select a total data tone count, from among the particular tone data counts; and
modulate a data payload in accordance with orthogonal frequency division multiplexing (OFDM) transmission in an OFDM system over an identified one of the channel bandwidths based on the total data tone count; and

a transceiver configured to communicate using the identified one of the channel bandwidths.

12. The apparatus of claim 11, further comprising:
an interleaver configured to interleave two or more codewords in the data payload before transmission on a channel of the identified channel bandwidth, wherein the number of coded symbols stored in the interleaver is proportional to an assigned interleaver parameter times a number of coded bits per single carrier.

13. The apparatus of claim 11, wherein:
the processing circuitry is further configured to determine whether iteration through the plurality of total data tone counts has been completed, and
the apparatus further comprises display circuitry configured to, after iteration through the plurality of total data tone counts has been completed, present one of:
the particular tone data counts, or
after the processing circuitry has determined that no particular tone data counts were determined, the plurality of total data tone counts and an indication that no particular tone data counts were determined.

14. The apparatus of claim 11, wherein the processing circuitry is further configured to:
in response to a determination that bit padding is available, select the total data tone from among the plurality of total data tone counts free from iterating through the plurality of total data tone counts to determine the particular tone data counts.

15. The apparatus of claim 11, wherein the processing circuitry is further configured to:
determine whether a set of the particular tone data counts result in a non-integer number of data bits per symbol;
determine that non-integer numbers of bits are unable to be processed in the OFDM system; and
limit selection of the total data tone count to avoid selection of the set of the particular tone data counts in response to determining that non-integer numbers of bits are unable to be processed and that bit padding is unavailable.

16. The apparatus of claim 11, wherein:
the number of coded bits per symbol is equal to a number of data subcarriers times a modulation order, and the number of data bits per symbol is a code rate times the number of coded bits per symbol, and
the processing circuitry is further configured to:
determine whether a set of the particular tone data counts result in a non-integer number of data bits per symbol;
determine that non-integer numbers of bits are unable to be processed in the OFDM system; and
limit selection of code rates in response to determining that non-integer numbers of bits are unable to be processed and that bit padding is unavailable.

17. A non-transitory computer-readable storage medium that stores instructions for execution by one or more processors of a communication device to configure the communication device for multiple bandwidth operation, the instructions to configure the communication device to:
iterate, when predetermined conditions are met, through a plurality of total data tone counts to determine particular tone data counts that satisfy:





  
    
      
        
          N
          CBPS
        
        
          INT
          DIM
        
      
      -
      
        ⌊
        
          
            N
            CBPS
          
          
            INT
            DIM
          
        
        ⌋
      
    
    =
    0
  
  ,
  
    

  
  ⁢
  
    
      
        N
        DBPS
      
      -
      
        ⌊
        
          N
          DBPS
        
        ⌋
      
    
    =
    0
  
  ,



 and
where NCBPS is a number of coded bits per symbol; INTDIM is a number of coded symbols stored in an interleaver, and NDBPS is a number of data bits per symbol;
select a total data tone count, from among the particular tone data counts;
modulate a data payload in accordance with orthogonal frequency division multiplexing (OFDM) transmission in an OFDM system over an identified one of the channel bandwidths based on the total data tone count;
interleave a plurality of codewords in the data payload before transmission on a channel of the identified channel bandwidth using an interleaver, the number of coded symbols stored in the interleaver proportional to an assigned interleaver parameter times a number of coded bits per single carrier, the interleaver being reused when expanding from a smaller channel bandwidth to a larger channel bandwidth by modification of the interleaver to accommodate a matrix defined to write and read data in the OFDM system with the greater channel bandwidth; and
communicate using the identified one of the channel bandwidths.

18. The apparatus of claim 17, wherein the instructions further configure the communication device to:
determine whether iteration through the plurality of total data tone counts has been completed, and
after iteration through the plurality of total data tone counts has been completed, present one of:
the particular tone data counts, or
after the processing circuitry has determined that no particular tone data counts were determined, the plurality of total data tone counts and an indication that no particular tone data counts were determined.

19. The apparatus of claim 17, wherein the instructions further configure the communication device to:
in response to a determination that bit padding is available, select the total data tone from among the plurality of total data tone counts free from iterating through the plurality of total data tone counts to determine the particular tone data counts.

20. The apparatus of claim 17, wherein the instructions further configure the communication device to:
determine whether a set of the particular tone data counts result in a non-integer number of data bits per symbol; and
one of:
determine that non-integer numbers of bits are unable to be processed in the OFDM system; and limit selection of the total data tone count to avoid selection of the set of the particular tone data counts in response to determining that non-integer numbers of bits are unable to be processed and that bit padding is unavailable, or
determine that non-integer numbers of bits are unable to be processed in the OFDM system, and limit selection of code rates in response to determining that non-integer numbers of bits are unable to be processed and that bit padding is unavailable.