# US 11,115,250 B1 · MPPM encoder and decoder

> Agents: this data is available as JSON from the patentgrep API and MCP server — see https://patentgrep.com/llms.txt

- Number: US 11,115,250 B1
- Document ID: US11115250B1
- Status: Granted
- Kind: B1
- Application number: 16/804,140
- Filed: 2020-02-28
- Granted: 2021-09-07
- Earliest claimed: 2019-03-01
- Assignees: Acacia Communications, Inc.
- Applicants: Acacia Communications, Inc.
- Inventors: Timo Pfau
- Web page: https://patentgrep.com/patent/US11115250B1

## CPC

- H04L 25/4902: {Pulse width modulation; Pulse position modulation}
- H04B 10/5161: {Combination of different modulation schemes}
- H04B 10/524: Pulse modulation
- H03M 5/02: Conversion to or from representation by pulses
- H04L: TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION (arrangements common to telegraphic and telephonic communication H04M)
- H04B: TRANSMISSION
- H03M: CODING; DECODING; CODE CONVERSION IN GENERAL (using fluidic means F15C4/00; optical analogue/digital converters G02F7/00; coding, decoding or code conversion, specially adapted for particular applications, see the relevant subclasses, e.g. G01D, G01R, G06F, G06T, G09G, G10L, G11B, G11C, H04B, H04L, H04M, H04N; ciphering or deciphering for cryptography or other purposes involving the need for secrecy G09C)

## Abstract

A method, system, and apparatus for calculating coefficients for inputs and corresponding output sequences for a pulse-position modulation encoder using a stored structure; wherein the structure is a subset of the values of Pascal's Triangle.

## Claims

### Claim 1

A method comprising:
calculating coefficients for inputs and corresponding output sequences for a pulse-position modulation encoder using a stored structure; wherein the structure contains a subset of Pascal's Triangle; wherein the pulse-position modulation encoder is a flex multipulse-position modulation encoder and the structure includes a portion of a row of Pascal's Triangle.

### Claim 2 (depends on 1)

The method of claim 1 wherein the pulse-position modulation encoder is an MPPM encoder and the stored structure includes a diagonal of a Pascal's Triangle.

### Claim 3 (depends on 2)

The method of claim 2 wherein at least a portion of the stored portion of Pascal's Triangle is used to calculate other portions of Pascal's Triangle.

### Claim 4 (depends on 1)

The method of claim 1 wherein the number of values of the portion of a row is equal to a maximum number of possible encoded pulses plus 1.

### Claim 5 (depends on 4)

The method of claim 4 wherein the portion of a row is used to calculate another portion of Pascal's Triangle, and the another portion of Pascal's Triangle is stored in memory.

### Claim 6

A method comprising:
calculating coefficients for inputs and corresponding output sequences for a pulse-position modulation decoder using a stored structure, wherein the stored structure is a subset of the values in Pascal's Triangle; wherein the pulse-position modulation decoder is a flex multipulse-position modulation decoder and the stored structure includes a portion of a row of Pascal's Triangle.

### Claim 7 (depends on 6)

The method of claim 6 wherein the pulse-position modulation decoder is a multipulse-position modulation decoder and wherein the stored structure includes a diagonal of a Pascal's Triangle.

### Claim 8 (depends on 7)

The method of claim 7 wherein the used stored portion of Pascal's Triangle depends on a preprocessing block.

### Claim 9 (depends on 6)

The method of claim 6 wherein the used stored portion of Pascal's Triangle depends on a preprocessing block.

### Claim 10 (depends on 6)

The method of claim 6 wherein the portion of a row is used to calculate another portion of Pascal's Triangle, and the another portion of Pascal's Triangle is stored in memory.

### Claim 11

A pulse-position modulation encoder, the encoder comprising:
memory; wherein the memory contains a structure corresponding to part of Pascal's Triangle; and
logic enabling the encoder to calculate coefficients for inputs and corresponding output sequences using the structure; wherein the pulse-position modulation encoder is a flex multipulse-position modulation encoder and the structure includes a portion of a row of Pascal's Triangle.

### Claim 12 (depends on 11)

The encoder of claim 11 wherein the encoder is a multipulse-position modulation encoder and the stored structure includes a diagonal of a Pascal's Triangle.

### Claim 13 (depends on 12)

The encoder of claim 12 wherein the stored portion of Pascal's Triangle is used to calculate other portions of Pascal's Triangle.

### Claim 14 (depends on 11)

The encoder of claim 11 wherein the number of values of the portion of a row is equal to a maximum number of possible encoded pulses plus 1.

### Claim 15 (depends on 11)

The encoder of claim 11 wherein the portion of a row is used to calculate another portion of Pascal's Triangle, and the another portion of Pascal's Triangle is stored in memory.

### Claim 16

A decoder comprising:
memory; wherein the memory contains a structure corresponding to part of Pascal's Triangle; and
logic enabling the decoder to calculate coefficients for inputs and corresponding output sequences for a pulse-position modulation decoder using a stored structure, wherein the stored structure is a subset of the values in Pascal's Triangle; wherein the stored portion of Pascal's Triangle is used to calculate other portions of Pascal's Triangle.

### Claim 17 (depends on 16)

The decoder of claim 16 wherein the pulse-position modulation decoder is a multipulse-position modulation decoder and wherein the stored structure is a diagonal of a Pascal's Triangle.

### Claim 18 (depends on 17)

The decoder of claim 17 wherein the used stored portion of Pascal's Triangle depends on a preprocessing block.

### Claim 19 (depends on 16)

The decoder of claim 16 wherein the pulse-position modulation decoder is a flex multipulse-position modulation decoder and the stored structure is a portion of a row of Pascal's Triangle.

### Claim 20 (depends on 16)

The decoder of claim 16 wherein the stored structure comprises a diagonal of a Pascal's Triangle.
