Interoperability verification for implementation according to communication standard
A method for verifying interoperability of an implementation of a communication standard includes monitoring a symbol comprising a set of subcarrier symbols in a communication stream, in which some of the subcarrier symbols of the symbol are generated from pilot symbols, transmitted on subcarriers in accordance with the standard. For a given implementation and a given symbol, it is known which subcarriers will be pilot symbols, and what their pilot symbol values will be. A communication stream, generated by an implementation that is interoperable with the standard, will contain expected pilot information. Using the implementation to be verified, a communication stream is generated, containing pilot information. The generated pilot information is compared with the expected pilot information, and interoperability is determined based on the result of the comparing.
1. A method for verifying interoperability of an implementation of a communication standard with the communication standard, the method comprising:
(A) generating a communication stream containing pilot information, the communication stream being generated from a set of seed values using a data sequence generator;
(B) receiving the communication stream via circuitry of a signal analyzer, the signal analyzer comparing the pilot information with pilot information expected from an implementation that is interoperable with the standard, the comparing including:
(1) identifying pilot symbols from the generated communication stream,
(2) comparing the identified pilot symbols with the expected pilot symbols, and
(3) examining a phase of the pilot symbols from the generated communication stream; and
(C) determining interoperability based on the result of the comparing.
2. A method as recited in claim 1 , wherein the creating a set of seed values includes creating a set of words, each word being of a predetermined bit length and comprising a respective bit combination.
3. A method as recited in claim 2 , wherein:
each word has a bit length N, where N is an integer;
the set of words includes 2 N words, and
the words include all possible bit combinations.
4. A method as recited in claim 1 , further comprising:
using each seed value into the data sequence generator; and
operating the data sequence generator to generate a respective communication stream from each seed value, each communication stream including a generated symbol.
5. A method as recited in claim 4 , wherein the determining includes, for a given one of the seed values:
identifying a pilot symbol in the generated symbol;
comparing the identified pilot symbols with the expected pilot symbols;
based on the comparing, determining whether there is a match between the expected pilot symbol and the identified pilot symbol; and
removing the given seed value from the set of seed values if there is not a match between the identified pilot symbol and the expected pilot symbol.
6. A method as recited in claim 5 , wherein the determining further includes:
determining a number of seed values remaining in the set of seed values after comparing;
if the number of remaining seed values is zero, determining that the implementation is not interoperable;
if the number of remaining seed values is one, determining that the implementation is interoperable; and
if the number of remaining seed values is greater than one, determining that it is uncertain whether the implementation is interoperable.
7. A computer-readable medium having a computer program product thereon, the computer program product, when executed by a computer, directing processing equipment to perform a method as recited in claim 1 .
8. An apparatus for verifying interoperability of an implementation of a communication standard with the communication standard, the apparatus comprising:
(A) means for generating a communication stream containing pilot information, the communication stream being generated from a set of seed values using a data sequence generator;
(B) means for comparing the pilot information with pilot information expected from an implementation that is interoperable with the standard, the means for comparing including:
(1) means for identifying the pilot symbols from the generated communication stream;
(2) means for comparing the identified pilot symbols with the expected pilot symbols; and
(3) means for examining a phase of the pilot symbols from the generated communication stream; and
(C) means for determining interoperability based on the result of the comparing.
9. An apparatus as recited in claim 8 , wherein the means for generating a communication stream uses a set of seed values including a set of words, each word being of a predetermined bit length and comprising a respective bit combination.
10. An apparatus as recited in claim 9 , wherein:
each word has a bit length N, where N is an integer;
the set of words includes 2 N words, and
the words include all possible bit combinations.
11. An apparatus as recited in claim 8 , further comprising:
means for using each seed value in the data sequence generator; and
means for operating the data sequence generator to generate a respective communication stream from each seed value, each communication stream including a generated symbol.
12. An apparatus as recited in claim 11 , wherein the means for determining includes, for a given one of the seed values:
means for identifying a pilot symbol in the generated symbol;
means for comparing the identified pilot symbols with the expected pilot symbols;
based on the comparing, means for determining whether there is a match between the expected pilot symbol and the identified pilot symbol; and
means for removing the given seed value from the set of seed values if there is not a match between the identified pilot symbol and the expected pilot symbol.
13. An apparatus as recited in claim 12 , wherein the means for determining further includes:
means for determining a number of seed values remaining in the set of seed values after comparing;
means, operable if the number of remaining seed values is zero, for determining that the implementation is not interoperable;
means, operable if the number of remaining seed values is one, for determining that the implementation is interoperable; and
means, operable if the number of remaining seed values is greater than one, for determining that it is uncertain whether the implementation is interoperable.