I matematik kan Costas-arrayet (opkaldt efter John P. Costas) opfattes geometrisk som et sæt af n punkter, der ligger på kvadraterne på et n × n skakbræt , således at hver række eller kolonne kun indeholder ét punkt og alle n ( n − 1 )/2 vektorer af forskydninger mellem hvert par af punkter var forskellige. Dette array kan bruges til at skabe en ideel usikkerhedsknapfunktion (det vil sige en funktion, der er uendelig ved (0,0) og nul på andre punkter), hvilket gør Costas-arrays nyttige til applikationer som hydro- og radar.
Costas-arrayet kan repræsenteres digitalt som et array af n × n tal, hvor hvert punkt tildeles et 1, og i mangel af et punkt skrives et 0 til arrayet. Hvis de fortolkes som binære matricer, er disse arrays af tal har egenskaben: hver række og en kolonne har kun ét punkt på sig, så de er også permutationsmatricer. Costas-arrays for enhver n er således en delmængde af permutationsmatricer af orden n .
Costas-arrays kan ses som todimensionelle analoger af endimensionelle Golomb-linealer . De er af matematisk interesse, de bruges i udviklingen af radarteknologi på fasede arrays .
Alle Costas-arrays op til størrelse 27 × 27 er kendte [1] . Der er to måder at få Costas-arrays på, ved at arbejde med et antal primtal og primpotenser. De er kendt som Welch (Lloyd R. Welch) og Lempel-Golomb metoder og stammer fra matematikken fra finite field teorien .
Indtil videre er alle Costas-arrays for alle størrelser ukendte. I øjeblikket er de mindste størrelser, for hvilke arrays er ukendte, 32×32 og 33×33.
Arrays beskrives typisk som en række indekser, der angiver kolonnerne for hver række. Da der kun er ét punkt i en kolonne, kan arrayet repræsenteres som endimensionelt. For eksempel, en Costas-array af orden N = 4:
0 | en | 0 | 0 |
en | 0 | 0 | 0 |
0 | 0 | en | 0 |
0 | 0 | 0 | en |
Der er punkter med koordinater: (1,2), (2,1), (3,3), (4,4)
X -koordinaten stiger lineært, vi kan kort skrive dette som en sekvens af y - koordinater. Så vil positionen i sættet være x - koordinaten. Ovenstående array kan kodes med sekvensen {2,1,3,4}. Dette gør det nemt at håndtere arrays af ordre N .
N = 1
{1}
N =2
{1,2}{2,1}
N =3
{1,3,2}{2,1,3}{2,3,1}{3,1,2}
N = 4
{1,2,4,3}{1,3,4,2}{1,4,2,3}{2,1,3,4}{2,3,1,4}{2 ,4,3,1} {3,1,2,4} {3,2,4,1} {3,4,2,1} {4,1,3,2} {4,2,1, 3}{4,3,1,2}
N = 5
{1,3,4,2,5} {1,4,2,3,5} {1,4,3,5,2} {1,4,5,3,2} {1, 5,3,2,4} {1,5,4,2,3} {2,1,4,5,3} {2,1,5,3,4} {2,3,1,5, 4} {2,3,5,1,4} {2,3,5,4,1} {2,4,1,5,3} {2,4,3,1,5} {2,5 ,1,3,4} {2,5,3,4,1} {2,5,4,1,3} {3,1,2,5,4} {3,1,4,5,2 } {3,1,5,2,4} {3,2,4,5,1} {3,4,2,1,5} {3,5,1,4,2} {3,5, 2,1,4} {3,5,4,1,2} {4,1,2,5,3} {4,1,3,2,5} {4,1,5,3,2} {4,2,3,5,1} {4,2,5,1,3} {4,3,1,2,5} {4,3,1,5,2} {4,3,5 ,1,2} {4,5,1,3,2} {4,5,2,1,3} {5,1,2,4,3} {5,1,3,4,2} { 5,2,1,3,4} {5,2,3,1,4} {5,2,4,3,1} {5,3,2,4,1}
N = 6
{1,2,5,4,6,3} {1,2,6,4,3,5} {1,3,2,5,6,4} {1,3,2,6 ,4,5} {1,3,6,4,5,2} {1,4,3,5,6,2} {1,4,5,3,2,6} {1,4,6 ,5,2,3} {1,5,3,4,6,2} {1,5,3,6,2,4} {1,5,4,2,3,6} {1,5 ,4,6,2,3} {1,5,6,2,4,3} {1,5,6,3,2,4} {1,6,2,4,5,3} {1 ,6,3,2,4,5} {1,6,3,4,2,5} {1,6,3,5,4,2} {1,6,4,3,5,2} {2,3,1,5,4,6} {2,3,5,4,1,6} {2,3,6,1,5,4} {2,4,1,6,5, 3} {2,4,3,1,5,6} {2,4,3,6,1,5} {2,4,5,1,6,3} {2,4,5,3, 6,1} {2,5,1,6,3,4} {2,5,1,6,4,3} {2,5,3,4,1,6} {2,5,3, 4,6,1} {2,5,4,6,3,1} {2,6,1,4,3,5} {2,6,4,3,5,1} {2,6, 4,5,1,3} {2,6,5,3,4,1} {3,1,2,5,4,6} {3,1,5,4,6,2} {3, 1,5,6,2,4} {3,1,6,2,5,4} {3,1,6,5,2,4} {3,2,5,1,6,4} { 3,2,5,6,4,1} {3,2,6,1,4,5} {3,2,6,4,5,1} {3,4,1,6,2,5 } {3,4,2,6,5,1} {3,4,6,1,5,2} {3,5,1,2,6,4} {3,5,1,4,2 ,6} {3,5,2,1,6,4} {3,5,4,1,2,6} {3,5,4,2,6,1} {3,5,6,1 ,4,2} {3,5,6,2,1,4} {3,6,1,5,4,2} {3,6,4,5,2,1} {3,6,5 ,1,2,4} {4,1,2,6,5,3} {4,1,3,2,5,6} {4,1,6,2,3,5} {4,2 ,1,5,6,3} {4,2,1,6,3,5} {4,2,3,5,1,6} {4,2,3,6,5,1} {4 ,2,5,6,1,3} {4,2,6,3,5,1} {4,2,6,5,1,3} {4,3,1,6,2,5} {4,3,5,1,2,6} {4,3,6,1,5,2} {4,5,1,3,2,6} {4,5,1,6,3,2} {4,5,2,1,3,6} {4,5,2,6,1, 3} {4,6,1,2,5,3} {4,6,1,5,2,3} {4,6,2,1,5,3} {4,6,2,3, 1,5} {4,6,5,2,3,1} {5,1,2,4,3,6} {5,1,3,2,6,4} {5,1,3, 4,2,6} {5,1,6,3,4,2} {5,2,3,1,4,6} {5,2,4,3,1,6} {5,2, 4,3,6,1} {5,2,6,1,3,4} {5,2,6,1,4,3} {5,3,2,4,1,6} {5, 3,2,6,1,4} {5,3,4,1,6,2} {5,3,4,6,2,1} {5,3,6,1,2,4} { 5,4,1,6,2,3} {5,4,2,3,6,1} {5,4,6,2,3,1} {6,1,3,4,2,5 } {6,1,4,2,3,5} {6,1,4,3,5,2} {6,1,4,5,3,2} {6,1,5,3,2 ,4} {6,2,1,4,5,3} {6,2,1,5,3,4} {6,2,3,1,5,4} {6,2,3,5 ,4,1} {6,2,4,1,5,3} {6,2,4,3,1,5} {6,3,1,2,5,4} {6,3,2 ,4,5,1} {6,3,4,2,1,5} {6,4,1,3,2,5} {6,4,5,1,3,2} {6,4 ,5,2,1,3} {6,5,1,3,4,2} {6,5,2,3,1,4}
En komplet database med arrays for alle dimensioner, som er blevet nøje kontrolleret, er tilgængelig her [2]
Welch-Costas- arrayet, eller blot Welch (Welch ) -arrayet, er et Costas-array opnået ved hjælp af en metode udviklet af Lloyd R. Welch . En Welch-Costas matrix er konstrueret ved at tage den primitive rod g af et primtal p og definere en matrix A , hvor if , ellers 0. Resultatet er en Costas matrix af størrelsen p − 1.
3 er en primitiv rod modulo 5.
Derfor er [3 4 2 1] en Costas-permutation. Dette er et Welch (Welch) diskret eksponentielt array. Det transponerede array er et Welch diskret logaritmisk array.
Antallet af Welch-Costas-arrays, der findes for en given størrelse, afhænger af Euler-funktionen .
Lempel-Golomb-metoden bruger de primitive elementer α og β fra det endelige felt GF( q ) og bestemmer på samme måde, hvis , ellers 0. Resultatet er en Costas-array af størrelsen q − 2. Hvis α + β = 1, så er den første række og kolonne fjernes for at danne en anden Costas-array af størrelsen q − 3: det vides ikke, om der er sådanne par af primitive elementer for hver potens af q .