FR 2913548 A1 20080912 FR 0753737 A 20070309 La présente invention se rapporte à un procédé de génération de signaux mutuellement orthogonaux dont le spectre est contrôlé. Elle a des domaines d'application nombreux et variés, parmi lesquels le tatouage de fichiers de signaux tels que des signaux audio. Le tatouage audio par étalement spectral utilise des signaux temporels dont le spectre est large - on parle de spectre étendu. Le tatouage utilise soit un, soit plusieurs signaux stockés dans un dictionnaire pour la modulation de symboles. Quand plusieurs signaux sont utilisés, on préfère utiliser des signaux dont le produit d'inter-corrélation est nul, car cela facilite la détection par corrélation. L'intercorrélation des signaux est une forme particulière du produit scalaire. On peut donc dire que rechercher des signaux non corrélés entre eux revient à choisir une famille de signaux mutuellement orthogonaux. Dans le cadre du tatouage, on a besoin de signaux dont le spectre est sous contrôle, c'est-à-dire qui correspondent à un gabarit particulier. A titre d'exemple, un signal codé en AAC (codage audio avancé, en anglais "Advanced Audio Coding") à 24 kbit/s par voie occupe une bande de l'ordre de 7 kHz, d'où l'intérêt de contrôler le spectre de la marque en limitant sa largeur de bande à 7 kHz. De plus, le tatouage se doit d'être aussi discret que possible, il sera donc modulé et mis en forme en tenant compte des propriétés de la psychoacoustique. Pour garantir une mise en forme précise, en dessous de la courbe de masquage garantissant l'inaudibilité de la marque, le signal à moduler doit avoir un spectre parfaitement blanc. La génération de signaux temporels réels de longueur donnée mutuellement orthogonaux se fait généralement, soit par une technique d'orthogonalisation d'une famille de signaux temporels, généralement aléatoires, soit par utilisation des lignes ou colonnes des matrices de Hadamard réelles. Chacune de ces techniques de l'art antérieur présente l'inconvénient de produire des signaux dont le spectre de puissance est difficile à contrôler. A titre d'exemple, on observe pour la technique d'orthogonalisation, des variations de dynamique de 60 dB et plus sur le spectre de puissance, le spectre étant haché et peu régulier. En outre, la technique des matrices de Hadamard réelles ne peut produire que des signaux de longueur 2 ou multiples de 4. Dans les systèmes de transmission avec des mobiles à accès multiple à répartition par code (en anglais "Code Division Multiple Access"), par exemple dans les systèmes CDMA tels que la norme IS95 (International Standard 95), les signaux utilisés pour séparer les utilisateurs sont des séquences d'Hadamard orthogonales et réelles dont le spectre dépend du numéro de la séquence. Cette façon de procéder est décrite dans l'ouvrage de Pierre LESCUYER intitulé "UMTS, les origines, l'architecture, la norme", Dunod, 2ème édition, 2002. A titre d'exemple, la première ligne de la matrice d'Hadamard ne contient que des 1. Il en résulte que cette étape doit être suivie d'une étape d'étalement de spectre proprement dite, ou embrouillage, avant la modulation (pages 116 à 119 de l'ouvrage précité), ce qui augmente la complexité d'un tel système. Le document WO-A-00 77962 décrit un procédé permettant d'engendrer des spectres complexes orthogonaux en faible nombre, typiquement sept, en discrétisant la phase de chaque échantillon complexe. Cette méthode présente notamment l'inconvénient de ne fournir qu'un nombre de séquences restreint. Pour améliorer la situation, on cherche à engendrer des signaux réels et des spectres complexes mutuellement orthogonaux de longueur arbitraire et dont les spectres de puissance puissent être contrôlables dans la mesure de la longueur des signaux engendrés et du nombre de signaux orthogonaux voulu. Ainsi, la présente invention propose un procédé de génération d'une pluralité de spectres discrets s(i) de dimension Q, mutuellement orthogonaux et à puissance contrôlée, i désignant le numéro du spectre, ces spectres représentant des signaux temporels dans le domaine spectral et étant de module p constant dans un ensemble G de désignation de raies spectrales et nul partout ailleurs, le procédé étant remarquable en ce qu'il consiste à : - déterminer au moins une partie d'une matrice de Hadamard complexe H d'ordre dR = w dans le cas de spectres de signaux réels et dR = 2.w dans le cas de spectres de signaux complexes ; - déterminer le prolongement P de la matrice H à partir de G et de la 5 dimension Q ; et - obtenir les spectres à puissance contrôlée s(i) = p.P(H[.][i]), où H[.][i] désigne la ième colonne de la matrice H. Ainsi, l'invention permet la génération de spectres discrets mutuellement orthogonaux de longueur quelconque, en nombre voulu et à 10 puissance contrôlée. En outre, il n'est pas nécessaire de construire la matrice de Hadamard complexe entière. Dans un mode particulier de réalisation, l'étape de détermination d'au moins une partie de la matrice de Hadamard complexe consiste à obtenir une colonne d'une matrice des rotations calculée à partir de clés prédéterminées de 15 rotation et de permutation appliquées à une matrice de Hadamard de référence. Ce système d'utilisation de clés permet d'engendrer des familles de spectres variées et peu corrélées. Dans un mode particulier de réalisation, le procédé comporte en outre une étape de décomposition de l'ordre dR de la matrice de Hadamard de 20 référence en un produit de facteurs et une sous-étape de calcul du plus petit commun multiple de l'ensemble de ces facteurs pour la détermination de la matrice de Hadamard de référence. Ainsi, le fait de choisir le plus petit commun multiple signifie que les phases du spectre complexe engendré seront éloignées le plus possible les 25 unes des autres. Cela permet d'accroître la robustesse au bruit. Dans un mode particulier de réalisation, le procédé comporte en outre une étape consistant à déterminer un signal s(i)[k] = E s(i)[x]. f F(q )[k[a]][x[a]] x{Q \ aE[X+T] où : 30 • i désigne le numéro du signal, • Q désigne un ensemble de coordonnées, • X désigne le nombre de dimensions spatiales, • T désigne le nombre de dimensions temporelles et • Fm.) désigne la matrice de Fourier d'ordre qa, de façon à engendrer une pluralité de signaux temporels s(i) mutuellement 5 orthogonaux. La présente invention propose également un procédé de génération d'une famille de signaux temporels, remarquable en ce qu'il consiste à combiner des familles de signaux temporels mutuellement orthogonaux engendrés par un procédé tel que succinctement décrit ci-dessus et dont les 10 supports spectraux sont disjoints. L'utilisation de familles de spectres complexes à spectres de puissance disjoints permet de quantifier le signal dans le domaine transformé en utilisant une modélisation progressive en fréquence du signal par des spectres complexes orthogonaux. Cette façon de procéder donne directement à 15 chaque étape des facteurs d'échelle optimaux pour les spectres complexes, sans nécessiter de réoptimisation des facteurs précédents, contrairement à l'art antérieur, qui utilise une méthode de Gram-Schmidt pour cette réoptimisation. La présente invention propose également l'utilisation de signaux temporels ou spectres complexes mutuellement orthogonaux engendrés par un 20 procédé tel que succinctement décrit ci-dessus pour l'étalement spectral dans des systèmes de transmission à étalement de spectre. En effet, de par leur construction, ces signaux ou spectres sont à spectre étalé dans la bande transmise et de puissance de valeur 1, contrairement aux séquences de Hadamard utilisées dans le système 25 américain actuel IS95 d'accès multiple à répartition par codes. Dans les codeurs audio, ils peuvent être utilisés comme dictionnaires de quantification dans les codeurs prédictifs. Dans ce cas, la quantification est effectuée par deux algorithmes rapides : d'une part, l'un par transformée de Fourier rapide pour le passage dans le domaine fréquentiel et, d'autre part, pour le produit 30 scalaire intervenant dans la quantification. La présente invention propose également l'utilisation de signaux temporels ou spectres complexes mutuellement orthogonaux engendrés par un procédé tel que succinctement décrit ci-dessus pour le tatouage audio et sa détection. En tatouage audio, ces spectres peuvent être directement utilisés pour le tatouage dans le domaine fréquentiel, leur spectre de puissance idéalement blanc dans la ou les bandes transmises permettant leur mise en forme précise par pondération psychoacoustique, ce qui constitue une propriété importante pour assurer le caractère inaudible du tatouage. Les spectres de l'art antérieur ne permettent pas cette mise en forme précise, vu que leur spectre de puissance présente une variation de dynamique non négligeable. Les spectres complexes de l'invention présentent également l'avantage d'être facilement modulés tels quels, dans des bandes de fréquence définies, dans les systèmes de transmission à multiplexage à accès par codes. Quant aux signaux dans le domaine temporel, en tatouage audio, ils peuvent être directement utilisés pour le tatouage à étalement de spectre, où un symbole de Kb bits est représenté par Kb signaux orthogonaux. On constate par ailleurs les mêmes avantages que ceux mentionnés ci-dessus pour les spectres complexes. La présente invention propose également l'utilisation de spectres complexes mutuellement orthogonaux à spectre de puissance contrôlé engendrés par un procédé tel que succinctement décrit ci-dessus pour le codage ou la représentation de signaux audio, les signaux audio étant quantifiés à l'aide d'un dictionnaire ou d'une famille de dictionnaires à valeurs réelles ou complexes représenté(s) par une matrice de Hadamard complexe engendrée par des produits de Kronecker. En effet, dans les codeurs audio, ces spectres peuvent être utilisés comme dictionnaires de quantification pour les signaux issus d'une transformée de Fourier discrète. Dans ce cas, la quantification est effectuée par un algorithme rapide dont la structure est dérivée de la façon dont est construit le dictionnaire, par produits de Kronecker de matrices de base de faible dimension. La présente invention propose également l'utilisation de signaux temporels ou spectres complexes mutuellement orthogonaux à spectre de 6 puissance contrôlé engendrés par un procédé tel que succinctement décrit ci-dessus pour l'optimisation de données d'excitation de métrologie. Pour le calcul de la réponse impulsionnelle de salles acoustiques en métrologie, le fait que les séquences engendrées aient un spectre idéalement plat dans la bande est de nature à améliorer la précision de la détection par rapport à l'utilisation courante des séquences de pseudo-bruit engendrées par des registres à décalage, dont la fonction de corrélation possède un terme parasite par rapport à sa valeur idéale, qui est un Dirac. Corrélativement, l'invention propose un dispositif de génération d'une pluralité de spectres discrets s(i) de dimension Q mutuellement orthogonaux et à puissance contrôlée, i désignant le numéro du spectre, ces spectres représentant des signaux temporels dans le domaine spectral et étant de module p constant dans un ensemble G de désignation de raies spectrales et nul partout ailleurs, le dispositif étant remarquable en ce qu'il comporte : - un module pour déterminer au moins une partie d'une matrice de Hadamard complexe H d'ordre dR = w dans le cas de spectres de signaux réels et dR = 2.w dans le cas de spectres de signaux complexes ; - un module pour déterminer le prolongement P de la matrice H à partir de G et de la dimension Q ; et - un module pour obtenir les spectres à puissance contrôlée s(i) = p.P(H[.][i]), où H[.][i] désigne la ième colonne de la matrice H. La présente invention propose en outre un produit programme d'ordinateur pouvant être chargé dans un appareil programmable, remarquable en ce qu'il comporte des séquences d'instructions pour mettre en oeuvre un procédé tel que succinctement décrit ci-dessus, lorsque ce programme est chargé et exécuté par l'appareil programmable. Les caractéristiques particulières et les avantages du procédé de génération d'une famille de signaux temporels, des diverses utilisations des signaux temporels ou spectres complexes, du dispositif de génération d'une pluralité de spectres discrets et du produit programme d'ordinateur étant similaires à ceux du procédé de génération d'une pluralité de spectres discrets, ils ne sont pas répétés ici. 7 D'autres aspects et avantages de l'invention apparaîtront à la lecture de la description détaillée qui suit de modes particuliers de réalisation, donnés à titre d'exemples non limitatifs. La description se réfère aux dessins qui l'accompagnent, dans lesquels : - la figure 1 est un graphique représentant le spectre de puissance des signaux engendrés, dans un mode particulier de réalisation de l'invention ; - la figure 2 est un organigramme illustrant les principales étapes d'un procédé de génération de signaux temporels conforme à la présente invention, dans un mode particulier de réalisation ; - les figures 3 à 6 sont des organigrammes détaillant différentes opérations effectuées pour obtenir une colonne d'une matrice des rotations d'une matrice de Hadamard complexe conformément à la présente invention, dans un mode particulier de réalisation ; - la figure 7 est un organigramme illustrant le procédé conforme à la présente invention dans toute sa généralité ; - la figure 8 est un organigramme illustrant plus en détails le procédé dit de "calcul bande" mis en oeuvre dans l'organigramme de la figure 7 ; - la figure 9 est un organigramme illustrant plus en détails l'étape dite de "préparation bande" mise en oeuvre dans l'organigramme de la figure 8 ; -la figure 10 est un organigramme illustrant plus en détails l'étape de calcul spectral mise en oeuvre dans l'organigramme de la figure 8 ; - la figure 11 est un organigramme illustrant plus en détails l'étape dite "d'exponentielle" mise en oeuvre dans l'organigramme de la figure 10 ; la figure 12 est un organigramme illustrant plus en détails l'étape de calcul du prolongement de la figure 9 dans le cas des spectres complexes ; - la figure 13 est un organigramme illustrant plus en détails l'étape de prolongement de la figure 10 dans le cas des spectres complexes ; - la figure 14 est un organigramme illustrant plus en détails l'étape de préparation du prolongement dans le cas des spectres complexes ; - la figure 15 est un organigramme illustrant plus en détails l'étape de prolongement de la figure 10 dans le cas des signaux réels ; - les figures 16 à 19 illustrent des exemples d'application de la présente invention, dans des modes particuliers de réalisation ; et - la figure 20 représente de façon schématique un dispositif adapté à mettre en oeuvre la présente invention, dans un mode particulier de réalisation. L'invention s'applique au cas des signaux discrets réels ou complexes. On introduit ci-dessous quelques notations et définitions qui seront utilisées dans le reste de la description. Par convention, les variables d'indice commencent à zéro. Ainsi, un vecteur v de dimension 3 aura trois composantes notées: v[0], v[1], v[2]. De même, pour les matrices, on notera m[l][c] la composante de la ligne I et de la colonne c (commençant à zéro) de la matrice m. Le nombre de signaux engendrés est noté Ns. Les signaux à engendrer seront notés s(i), où 0 Chaque signal s(i) peut être vu indifféremment, soit comme un signal de longueur Ls, soit comme une application de [0;Ls-1] c N (N étant l'ensemble des entiers naturels), soit comme un vecteur de dimension Ls. On privilégiera ici cette dernière interprétation, c'est-à-dire l'interprétation vectorielle. Du point de vue vectoriel, chaque signal s(i) est un vecteur de ENS (le produit cartésien de l'espace vectoriel E à la puissance Ls) où E est soit le corps des réels R (dans le cas d'un signal à valeurs réelles), soit le corps des complexes C (dans le cas d'un signal à valeurs complexes). Les valeurs du signal s(i) sont notées s(i)[n], où 0 Dans la suite, on utilisera des matrices de Fourier d'ordre (ou dimension) quelconque qui seront notées F("). La matrice de Fourier d'ordre n est la matrice carrée définie par F(") E C"X" et 2~-ces F(") [I][c] = e (1.1) Cette matrice présente les propriétés suivantes : F(n)[I][c] =1 et tF(n).F(n) = nl(n) (1.2) où F(n) désigne la matrice conjuguée de F(n) , t F(n) désigne la matrice transposée de la matrice F(n) et I(n) désigne la matrice identité d'ordre n. On en déduit F- = 1.tF(n) . n t F et F sont respectivement la matrice de Transformation de Fourier Discrète (TFD) et la matrice de transformation de Fourier discrète inverse. Dans la présente invention, la matrice F sera utilisée dans deux contextes différents : - pour transformer un spectre complexe à spectre de puissance contrôlé en un signal temporel, et - comme matrice de Hadamard réelle ou complexe de base pour engendrer les matrices de Hadamard d'ordre quelconque par produits de Kronecker. Le problème qu'on se propose de résoudre est de trouver une famille S de Ns signaux telle que le produit scalaire de deux signaux s(i) et s(j), noté (s(i)s(j)), est nul si i est différent de j, ce qui revient à dire que les signaux sont mutuellement orthogonaux selon le produit scalaire considéré. Autrement dit, en utilisant les notations mathématiques introduites précédemment, il s'agit de trouver S = {s(i)} tel que (s(i) s(j)) = 0 p i ~ j . On considérera les produits scalaires usuels : - dans le cas réel (E = fit) : (a b)=ta.b - dans le cas complexe (E = C) : (a b)=t â.b On aura aussi à considérer les spectres complexes discrets (i) E C`S définis à partir des signaux temporels s(i) par : (i) = Fis s(i) (1.3) En d'autres termes, le spectre complexe est obtenu par TFD du signal réel. Les spectres sont dits discrets car provenant de la TFD d'un signal discret, c'est-à-dire échantillonné dans le temps à une fréquence donnée Fe. Le spectre de puissance du signal temporel est donné en fonction du spectre complexe par : PS (i)[k] = s(i) [k] 2 = (s(i)[k] S(i)[k]) = s(i)[k] s(i)[k] Dans la suite, on dira donc indifféremment que le signal temporel et 5 le spectre complexe sont à puissance contrôlée. Les matrices F(LS) et tF(LS) étant orthogonales (équation (1.2)), le signal temporel est donné en fonction du spectre complexe par : s(i) = F(LS) (i) (1.4) c'est-à-dire par transformée de Fourier discrète inverse du spectre complexe. 10 Pour que le signal s(i) soit réel (E = ), on montre qu'une condition nécessaire et suffisante est que les égalités suivantes soient vérifiées : s(i)[0] = s(i)[0] et Vk E [1ù • • Ls -s(i)[k] = s(i)[Ls - k] (1.5) En d'autres termes, pour que la transformation de Fourier inverse d'un spectre complexe soit réelle, le spectre complexe s(i) doit vérifier la 15 propriété de symétrie précédente. Les matrices de Hadamard complexes sont les matrices carrées H d'ordre quelconque noté d (c'est-à-dire H E C') ayant les propriétés suivantes : t H.H = d.l(d) (propriété d'orthogonalité) et H[I][c] =1. On remarque que les matrices de Fourier sont des matrices de Hadamard complexes. Les 20 matrices de Hadamard complexes présentent en outre les propriétés suivantes : - si H est une matrice de Hadamard complexe, si P, Q sont des matrices de permutation, si C, D sont des matrices diagonales dont les éléments non nuls de la diagonale ont un module de 1, alors P.C.H.D.Q est 25 aussi une matrice de Hadamard complexe ; - si G et H sont deux matrices de Hadamard complexes d'ordres respectifs g et h, alors G H est une matrice de Hadamard complexe d'ordre g.h. L'opération est le produit de Kronecker ou produit tensoriel. On rappelle que : 30 (G H)[I][c] = (G[lg][cg]).(H[Ih][ch]) (1.6) où 1=lg.h+Ih et c=cg.h+ch. On décrit à présent le principe de base de la solution proposée par la présente invention. Pour la solution discrète de base, on souhaite que la famille S des signaux réels recherchés vérifie les propriétés suivantes : (s(i)!s(i)) =1 (s(i)s(j))=0 i~j (1.7) k E [Smin ... Smax ] u [Ls ù Smax ...Ls ù Smin] a s(i)[k] = k e [Smin ùSmax] u [Ls ù S. ...Ls ù Smin] a S(i)[k] = 0 Ces propriétés sont illustrées par le graphique de la figure 1 qui représente la valeur du spectre de puissance des signaux engendrés. Ces propriétés expriment le fait que les signaux temporels ont une puissance unitaire sur une période, que le spectre complexe de ces signaux est de module constant, p, entre un index de fréquence basse Smin et un index de fréquence haute Smax et nul partout ailleurs. La fréquence basse Emin est liée à l'index Smin et à la fréquence d'échantillonnage Fe par : Ls Smin =Fmin F e où Ls est le nombre d'échantillons de la TFD définie par l'équation (1.3). Les phases sont les seuls degrés de liberté du système. De plus, les signaux forment une famille libre dans l'espace des signaux de longueur Ls, ils sont orthogonaux entre eux, ou, autrement dit, ils sont non corrélés entre eux. On peut noter que le cas particulier Smin = 0 et Smax = Ls / 2, où il n'y a pas d'échantillon nul, est pris en compte dans l'équation (1.7) du fait de la périodicité du spectre complexe s(i) (période Ls). Le spectre des signaux fréquentiels est alors parfaitement blanc sur toute la bande de fréquences et la fonction de corrélation des signaux temporels orthogonaux, déduits par transformée de Fourier inverse, est égale à une distribution de Dirac, propriété intéressante dans de nombreuses applications. Les signaux temporels seront réels lorsque la propriété de symétrie avec complexe conjugué (équation (1.5)) sera vérifiée. En remarquant que les signaux temporels sont donnés par transformée de Fourier inverse des spectres complexes (équation (1.4)), on 5 montre que : (s(i) s(j)) = (Fm).s(i) F(LS).s(j))=ts(i).tFmLS).F(LS).s(j) = Ls.(ts(i)•s(j)) = Ls.(s(i) On ramène alors le problème de l'orthogonalité des signaux dans le domaine des spectres complexes g(i). Les raies spectrales en dehors de la réunion d'intervalles 10 [Smin ...Sr. ] u [Ls ù Smax...Ls ù Smin] étant nulles, il suffit d'assurer l'orthogonalité pour les valeurs des signaux à spectre discret s(i) pour k E [Smin "'Smax ] u [Ls ù Sr,. ..•Ls ù Smin ]. Notons w = 1 + Smax -Smin le nombre correspondant à la moitié du nombre de raies de module p. Cette opération, qui restreint l'étude aux valeurs non nulles, est 15 appelée restriction. On la note R : C`S ù> Ca". Son opération inverse est appelée prolongement et est notée P : C2.w ù C`S Dans le cas réel, il suffit de restreindre pour k E [Smin'' Smax]. Les valeurs restantes, d'indice k E [Ls ù Smax ...Ls ù Smin ], se déduisent des précédentes par conjugaison suivant la propriétés(i)[k] = s(i)[Ls ù k] des 20 signaux réels, rappelée plus haut. On a alors : R : C`S Cw et P : Cw > CLS Notons F(i) la restriction de s(i). Notons dR la dimension de la restriction r(i) , c'est-à-dire F(i) E CdR . Dans le cas de signaux réels, on a dR = w et dans le cas de signaux complexes, on a dR = 2.w. On a F(i) = R(s(i)) et on cherche une famille R = {F(i)} de Ns vecteurs rr"(i), telle que s(i) = F(LS).P(r(i)), 25 c'est-à-dire S = F(LS).P(R). La satisfaction des propriétés requises pour les s(i) amène à écrire les propriétés suivantes pour les f(i) : r(i)[p] = Vi Vp (r(i) r(j)) = 0 i ~ j Ces propriétés ou contraintes sont voisines de celles des vecteurs des matrices de Hadamard complexes. La solution à ce problème est donc obtenue en choisissant pour la famille R une famille libre issue d'une matrice 5 de Hadamard complexe H d'ordre dR multipliée par p. Dans le cas simple où F(i) correspond à la ième colonne de la matrice H, ce qu'on note r(i) = p.H[.][i], on a : s(i) = F(LS).P(p.H[•][i]) = p.F(LS).P(H[•][i]) (s(i) s(j)) = Ls.(t s(i)•s(j)) = Ls.(t P(r(i)).P(r(j))) (s(i) s(j)) 2.Lsd L .w. 2 (][i] H[ ][1]) = 2.Ls.w. 2 [( t H.H)[i][1]] = R d R 10 Ainsi : i = j a (s(i) s(j)) = 2.Ls.w. z (s(i) s(j)) = 2.Ls.w. 2(I(d,)[i][j]) j (s(i) s(j)) = 0 L'analyse de dimensionnalité montre que la relation suivante doit être respectée : Ns On a vu ci-dessus que ce module calcule une colonne de la matrice HC1e . Cela présente l'avantage d'éviter la construction de la matrice complète et donc, de simplifier et d'accélérer les calculs. Formellement, la matrice des rotations s'exprime ainsi : Hcié = 2ir .In(HC1é), où Hcié = Rcié,lig•Pclé,lig•Href•Pclé,col•Rclé,col~ Oë -Pclé,lig et Pcié,col sont les matrices de permutation correspondant aux permutations aclé,iig et Qclé,col ; - Rcié,lig et Rclé,coi sont des matrices diagonales de rotations (des lignes et des colonnes) correspondant aux rotations Rcié,iig[x][x] = ze(Pclé,lig(x)) et Rclé,col[x][x] = ze(pclé,col(x)). En pratique, n'importe quelles rotations peuvent être utilisées et pas seulement les rotations d'ordre 8, c'est-à-dire que les matrices Rclé,lig et Rclé,coi peuvent aussi être définies comme les matrices diagonales RC1é,lig[x][x] = e2n'-7l•Pclé.lig(X) et Rclé,col[x][x] = e2~ -' Pc1éco1(X) . En pratique, l'application des rotations est optionnelle ; - Href est la matrice de Hadamard complexe de référence canoniquement construite par le procédé en fonction de dR ; - 8 est le plus petit ordre de la racine de l'unité qui permet d'exprimer les rotations par des entiers. Le calcul devient : Hclé [I][c] = Href [6cié,lig (1)][6clé,col (C)] + Pclé,lig (I) + Pclé,col (C) 0 Href 2T> . In(Href L'expression des fonctions auxiliaires Qclé,llg, Qclé,col, Pclé,lig et pclé,col est triviale. Les permutations peuvent être effectuées par exemple par des algorithmes d'embrouillage bien connus en cryptographie et les rotations peuvent être initialisées par une fonction aléatoire pour introduction d'un secret. Dans le cadre de la description du procédé, on suppose ces fonctions auxiliaires calculées et connues. Le nombre dR, qui représente l'ordre de Href, la matrice de Hadamard complexe de référence, s'écrit comme un produit de nombres. On note DF(dR) = {fi} une décomposition de dR en un produit de facteurs fi (ainsi, dR = Tif, ) f;eDF(dR) qu'on ordonne arbitrairement selon un indice i variant de 1 à Nf, où Nf désigne le nombre de facteurs de la décomposition de dR, c'est-à-dire Nf = DF(dR) . Dans la pratique, on peut prendre pour DF la décomposition en facteurs premiers. (1.8) Par exemple, dR = 100 = DF(dR) = {2;2;5;5} et Nf = 4 . La matrice de Hadamard complexe Href de référence construite par le procédé est définie par : Href =F(fi)(fz) ... F(fNr) = f F(fi) (1.9) Les matrices de base F(f) , i = 1, ... , Nf peuvent être des matrices de Fourier telles que définies plus haut. Plus généralement, on peut prendre des matrices de Hadamard complexes de taille f;. La génération de Href par un produit de Kronecker à partir de matrices de base peut être mise à profit dans le cas où le produit scalaire de tous les spectres complexes par un vecteur x est requis, soit (s(i)x) i = 0, ..., Ns-1, pour effectuer les calculs avec une complexité minimale. Il en résulte un algorithme de complexité dRlog2dR ayant une structure proche de celle de la transformée d'Hadamard. Selon la définition de Href par l'équation (1.9), l'ordre de la racine de l'unité est le plus petit commun multiple de l'ensemble des facteurs de dR, d'où 6 = ppcm(DF(dR)) = ppcm({f;}). Par exemple, 0(100) = 10. Si on prend pour DF la décomposition en facteurs premiers de dR, cette façon de procéder possède l'avantage que 6 est le plus petit possible, ce qui signifie que les phases du spectre complexe sont le plus éloignées possible les unes des autres. Incidemment, cela permet d'accroître la robustesse au bruit. Le calcul des matrices d'entiers Href [I][c] utilise le fait qu'un nombre n tel que 0 Ainsi, ayant défini, c'est-à-dire décomposé le numéro de ligne I = et le numéro de colonne c = 1c;.b; , on obtient, à l'issue des calculs 1sisNf 15i cherchait effectivement à obtenir. La figure 3 montre l'organisation du processus de calcul de la ième 10 colonne de la matrice des rotations Hc,é[.][i]. L'étape 300 de préparation consiste à : a) calculer la décomposition de dR en un produit de facteurs notée DF(dR) = {fil ; b) calculer le plus petit commun multiple de l'ensemble DF(dR), noté 15 0 = ppcm(DF(dR)) ; c) calculer avec la clé les fonctions auxiliaires Qclé,lig, 6clé,col, pclé,lig et Pclé,col• L'étape 302 consiste à effectuer la permutation aclé,col(i) puis à calculer directement Href [•][acié,col (i)] . A cette dernière matrice est ajoutée, à 20 l'étape 304, la contribution des rotations conformément à l'équation (1.8). Un exemple élémentaire de déroulement des opérations a) et b) est illustré sur l'organigramme de la figure 4. '` Lors d'une étape 400 d'initialisation, on initialise une variable n à la valeur dR, une variable D à la valeur 2, une variable i à la valeur 0 et une variable e à la valeur 1. Puis on effectue un test 402 consistant à vérifier si n est congru à zéro modulo D, c'est-à-dire si n est un multiple de D. Si le test 402 est négatif, on procède à un test 404 consistant à vérifier si n vaut 1. Si le test 404 est négatif, on incrémente d'une unité la valeur de la variable D (étape 406) et on retourne au test 402. Si le test 404 est positif, on attribue à la variable Nf, qui désigne le nombre de facteurs de la décomposition de dR, la valeur de i (étape 408) et l'algorithme se termine. Si le test 402 est positif, on effectue un test 410 consistant à vérifier si 8 est congru à zéro modulo D. Si le test 410 est négatif, on attribue à la variable 8 la valeur de la variable D.8 (étape 412) et on passe à l'étape 414. Si le test 410 est positif, on passe directement à l'étape 414. L'étape 414 consiste à attribuer à la variable n la valeur de la variable n/D, à incrémenter d'une unité la valeur de la variable i et à attribuer à la variable f; la valeur de la variable D. On retourne ensuite au test 402. En retournant à la figure 3, l'opération 302 de calcul de la colonne Href[.][6o,é,00l(i)] consiste à calculer les Hfef[I][c] _ 1 6 l .cj où c = Qc,é,co,(i). 1sj Les Ii et ci sont calculés progressivement. Ainsi, lors d'une étape d'initialisation 500, on initialise une variable I à la valeur 0 et une variable c à la valeur de la fonction auxiliaire acié,co,(i). Puis on vérifie lors d'un test 502 si 1 = dR. Si le test 502 est positif, l'algorithme se termine. Sinon, on initialise une variable j à la valeur 1 et une variable a à la valeur 0 (étape 504). Ensuite, on vérifie lors d'un test 506 si j > Nf, Nf désignant le nombre de facteurs premiers de dR. Si le test 506 est positif, on attribue la valeur de la variable a à la variable Href [I][c] (étape 508), on incrémente d'une unité la valeur de la variable I (étape 510) et on retourne au test 502. Si le test 506 est négatif, on attribue la valeur de 1 (le signe L.] fj désignant la partie entière) à la variable x et on calcule Ii = I - x.fj (étape 512). Ensuite, on attribue la valeur de - à la variable y et on calcule ci = c -y.fj (étape 514). L'étape 516 suivante consiste à attribuer la valeur de a + 9 • c. I. à la variable a. Puis, au cours de l'étape 518, on incrémente d'une unité la valeur de la variable j et on attribue la valeur de la variable x à la variable I ainsi que la valeur de la variable y à la variable c. On retourne ensuite au test 506. En retournant à la figure 3, l'opération 304 consiste à calculer la colonne Hc1é [.][i] en calculant les Hclé [I][I] = Href [aclé,lig (I)][6clé,col (I)] + Pclé,lig (I) + Pclé,col (I) Une réalisation de cette opération est illustrée par l'organigramme de la figure 6. Comme le montre la figure 6, une étape d'initialisation 600 consiste tout d'abord à initialiser une variable I à la valeur 0, une variable c à la valeur de la fonction auxiliaire acié,coi(i), une variable h à la valeur de Href [.][c] et une variable r à la valeur de la fonction auxiliaire pcié,col(i). Puis lors d'un test 602, on vérifie si I = dR. Si ce test est positif, l'algorithme se termine. Sinon, on attribue à la variable Hclé[I][i] la valeur de l'expression r + h[Qolé,lig(l)] + Pclé,iig(I) (étape 604). On incrémente ensuite d'une unité la valeur de la variable I (étape 606) puis on retourne au test 602. On expose à présent comment le procédé de base de génération de signaux temporels mutuellement orthogonaux décrit ci-dessus est appliqué dans toute sa généralité, conformément à la présente invention. On a vu ci-dessus que le procédé de base engendre des signaux temporels mutuellement orthogonaux ou des spectres complexes mutuellement orthogonaux selon un gabarit de spectre de puissance tel que représenté sur la figure 1. Cette approche était didactique et permettait d'exposer le fonctionnement de base : la génération des HC1e[I][i]. Dans toute sa généralité, la présente invention permet d'engendrer 10 des familles S = {s(i)} de signaux discrets mutuellement orthogonaux de l'espace A d'évolution du système : A = IEYixY2x...>c x 1Zixz2x...xZT EY1xY2x...xYxxZ1xZ2x...ZT ayant X dimensions spatiales réelles (E = R) ou complexes (E = C) et T dimensions temporelles et d'engendrer la famille à = {s(i)} de leurs spectres 15 complexes mutuellement orthogonaux dans : // ICY1xY2x...xYx 1ZixZ2x...xZT (IYlxY2x...xYxxZixZ2x..ZT selon des contraintes spectrales qui apparaîtront au cours de la description du procédé dans sa plus grande généralité. Notons [n] l'ensemble [n] = {0;1;2;...;n-2;n-1} des entiers positifs ou 20 nuls inférieurs à n. Notons Q = [Mx... x[Yx]x[ZI]x... x[ZT] = [qo]x... x[qx+T-1] l'ensemble Q des coordonnées du système, c'est-à-dire que les éléments de Q sont des coordonnées. Pour des raisons pratiques, on définit les q; en correspondance avec les dimensions Y; et Z; du système. Q définit les dimensions du système : 25 1Q I, son nombre d'éléments ou coordonnées est le nombre de libertés du système A. L'ensemble Q permet d'exprimer les valeurs d'un signal f de A comme une fonction de Q dans E, soit f : Q --> E; x H f(x). Autrement dit, un signal est assimilable à f, un élément de l'ensemble des fonctions de Q dans E, 30 noté F(Q,E), soit f E F(Q,E). L'ensemble F(Q,E) est connu comme étant un espace vectoriel, et donc, comme précédemment, on assimilera les signaux f aux vecteurs de l'espace vectoriel F(Q,E). Par définition des spectres complexes dans le domaine de Fourier, on a, pour tout signal f de F(Q,E) : et i f[k] = f [x]. nF(q) [k[i]][x[i]] xeQ ie[X+T] ~ f [x] = E f[k]. fJ F(1)[k[i]][x[i]] kEQ \. ie[X+T] ~ry .1 f[k]. JJ F(gl)[k[i]][x[i]] ryj KEQ IE[X+T] j ie[X+T] Notons QP l'ensemble des parties de Q (QP = p(Q) ), c'est-à-dire l'ensemble qui contient tous les sous-ensembles de Q. Soit G = {cga = (ga,cléa) / ga E QP et a e [n]} une famille de n parties ga de Q mutuellement disjointes, c'est-à-dire telles que si a ≠ b alors ga n gb = 0. Les ga sont appelées "bandes". On leur associe une clé appelée cléa, éventuellement unique, qui permet la génération d'une grande variété de familles de signaux faiblement corrélés. G est la définition des contraintes du système : chaque contrainte cga = (ga,cléa) exprime quelles sont les fréquences spatio-temporelles composant la bande ga ; les fréquences hors ga ont une amplitude nulle. Le procédé dans toute sa généralité permet de créer n familles Sa = {sa(i)} de signaux et Sa = {sa(i)} leurs versions dans le domaine de Fourier, ayant des spectres respectant les contraintes déterminées par G et formalisées par les propriétés suivantes : 1. le spectre d'une famille Sa est contrôlé par sa bande ga, soit Jk E ga s(i)[k] = a 1k e ga q s(i)[k] = 0 2. les familles sont décorrélées entre elles, soit 25 b'(a,b)E[n]2,a~b=(`dfESa,b'gESb,(fg)=0et(fg)=0) 3. les signaux d'une famille sont décorrélés entre eux, soit Va e [n],Vi E Sa , Vk E Q (1.10) Va E [n], V(i, j) E Sa 2, (sa (I) sa (j)) = 0 a (sa (i)Isa (j)) = 0 i ~ j 4. la puissance d'un signal est contrôlée, soit Va e [n],Vi E Sa, (sa (I) sa (I)) = 1 Le procédé permet, à partir des familles Sa = {sa(i)} de signaux et Sa = {a (i)} de leurs spectres complexes, d'engendrer une famille S = {s(i)} de signaux mutuellement orthogonaux (décorrélés) et la famille â = {(i)} de leurs spectres complexes eux-mêmes orthogonaux, et dont le spectre de puissance dans chacune des bandes ga est indépendant et quelconque. Le procédé permet, à partir des familles Sa = {sa(i)} de signaux et Sa = {Sa (i)} de leurs spectres complexes, d'engendrer une famille S = {s(i)} de signaux selon deux méthodes différentes dont le choix dépend de l'usage auquel la famille S est destinée : - dépendance des bandes entre elles, ce qui signifie que l'orthogonalité dans une bande implique l'orthogonalité dans les autres bandes, et donc que les signaux de la famille S sont orthogonaux entre eux ; - indépendance des bandes entre elles, ce qui signifie que les signaux des familles Sa peuvent être combinés sans restriction et implique que les signaux de la famille S ne sont pas toujours orthogonaux deux à deux. L'organigramme de la figure 7 illustre le procédé conforme à la présente invention dans toute sa généralité. La contrainte G est segmentée en ses contraintes par bande cgo, cg1, cg2, etc. Chaque bande ga donne lieu à la génération (via les modules 70, 71, 72, etc.) d'un signal sa(i) et de sa variante a(i) dans le domaine de Fourier, ayant un spectre contrôlé. Les signaux ainsi créés sont multipliés (via les modules 700, 701, 702, etc.) par un facteur ça qui contrôle la puissance du signal dans cette bande. Les signaux sont ensuite additionnés dans un module 7000 pour donner le spectre complexe (i,c) et/ou les signaux s(i,c) cherché(s). Les facteurs ça peuvent être modifiés sans changer l'orthogonalité (non corrélation) des spectres et signaux, ils ne modifient que l'équilibrage de la puissance des signaux s(i,c) et s(i,c). Le procédé dans toute sa généralité illustré sur la figure 7 utilise le procédé dit de "calcul bande" (dans les modules 70, 71, 72, etc.). Le calcul bande est illustré plus en détails sur l'organigramme de la figure 8. Il inclut une étape 80 dite de "préparation bande" qui permet de déterminer une fois pour toutes les paramètres de génération qui seront utilisés par le procédé dit de "calcul spectral" illustré par le bloc 82. Le procédé de calcul spectral permet la génération du spectre complexe sa(i) du ième signal de la bande ga. Le signal s(i) est obtenu en sortie du module 84, par une transformée de Fourier discrète inverse de son 10 spectre complexe sa(i), par une simple mise en oeuvre de la formule i s(i)[k] _ E s(i)[x]. f F(q )[k[a]][x[a]] , éventuellement optimisée selon les xeQ ae[X+T] techniques classiques de transformation de Fourier rapide. L'étape de préparation bande est illustrée plus en détails sur l'organigramme de la figure 9. Ce mécanisme est composé d'un module dit de 15 "calcul du prolongement" 90 qui détermine, en fonction de la contrainte cga et des dimensions du système, la dimension da,R des matrices de Hadamard (et donc le nombre maximal de signaux de la famille) et les données de prolongement prlga qui seront utilisées pour le prolongement. Le module de préparation 300 est celui décrit plus haut en liaison avec les figures 3 et 4. 20 L'organigramme de la figure 10 montre plus en détails l'organisation de l'étape de calcul spectral mise en oeuvre par le bloc 82 de la figure 8. Cette étape comprend : - l'étape 302 de calcul de Hfef [.][6a,c,é,co, (i)] illustrée sur la figure 3 et explicitée sur la figure 5 ; 25 - l'étape 304 de calcul de Ha,c,é[.][i] illustrée sur la figure 3 et explicitée sur la figure 6 ; - une étape 106 dite "d'exponentielle" qui consiste à calculer les nombres complexes correspondant aux rotations calculées et à les normaliser par un facteur d'échelle permettant d'obtenir la propriété de puissance 2~y- I Ha,clé[l][1] contrôlée. La formule est : Ha,c,é[I][i] = a.e e . Cette étape est illustrée plus en détails sur la figure 11 ; - une étape 108 de prolongement qui permet de constituer le spectre complexe sa (i) à puissance contrôlée cherché. Comme le montre la figure 11, une étape 110 d'initialisation consiste tout d'abord à initialiser une variable I à la valeur O. Puis un test 112 consiste à vérifier si la valeur de la variable I a atteint le nombre maximal da,R de signaux de la famille. Si tel est le cas, la procédure se termine. Sinon, on calcule Hacé[i][7 Ha,cié[I][i] = a.e a au cours d'une étape 114, puis on incrémente la variable I d'une unité (étape 116) et on retourne au test 112. Les opérations de prolongement 108 (figure 10) et de calcul du prolongement 90 (figure 9) diffèrent selon la nature du signal cherché, c'est-à-dire selon qu'on cherche un signal réel (E = fit) ou complexe (E=C). Les organigrammes des figures 12 et 13 montrent les étapes du calcul dans le cas des signaux complexes. Ce cas est le plus simple car il n'y a pas de contrainte de symétrisation. La figure 12 illustre plus en détails l'étape 90 de calcul du prolongement de la figure 9 dans le cas des signaux complexes. Lors d'une étape 120, on attribue la valeur de la bande ga à la variable prlga. Puis lors d'une étape 122, on attribue la valeur de gal à la variable da,R. On calcule ensuite a = I 1 (étape 124), ce qui termine la procédure. Le respect de la jQ.daR propriété de puissance contrôlée, c'est-à-dire (sa (i) sa (i)) =1, amène en effet à 1 poser a = .JQ.daR La figure 13 illustre plus en détails l'étape 108 de prolongement de la figure 10 dans le cas des spectres complexes. Au cours d'une première étape 130, on initialise la variable (i)[.] à la valeur 0 et au cours d'une étape 132, on initialise une variable 1 à la valeur O. Puis un test 134 consiste à vérifier si la variable I est égale à da,R. Si tel est le cas, la procédure se termine. Sinon, on calcule, au cours d'une étape 136, (i)[prlga[k]] = Ha,c,é[I][i] . On incrémente ensuite la valeur de I d'une unité (étape 138) puis on retourne au test 134. Dans le cas des signaux réels, il convient d'assurer l'égalité sa (i) = 5a(). Cette égalité est vraie quand Vk E Q, sa (i)[k] = sa (i)[k] . Cette définition utilise la définition du conjugué de la coordonnée k. Cette bijection de Q dans Q est définie de la façon suivante : k = (k0,k1,...,kx+T-,) a k = où ≠ O Cette préparation du prolongement supprime les éléments de ga qui sont indésirables. Ainsi, la dimension da,R peut avoir une valeur différente de ga Le prolongement dans le cas des signaux réels est illustré par l'organigramme de la figure 15. La procédure est identique à celle du cas complexe illustré sur la figure 13 pour ce qui concerne les étapes 130 à 136 décrites plus haut. Dans le cas des signaux réels, l'étape 136 est en outre suivie d'une étape 164 consistant à calculer a(i)[prlga[k]] = Ha,c,é[l][i] . On incrémente ensuite la variable I d'une unité (étape 166) puis on retourne au test 134. Cette procédure assure la propriété nécessaire aux réels : Vk E Q, sa (i)[k] = sa (i)[k] . Dans ce cas, le calcul montre que le facteur a doit .i2.Q.daR Le nombre maximal de signaux de la famille S engendrée selon G 15 est donné selon les cas d'usages : - dépendance des bandes entre elles, ce qui signifie que l'orthogonalité dans une bande implique l'orthogonalité dans les autres bandes, IS = min Sa = min da,R ; aE[n] ae[n] - indépendance des bandes entre elles, S = FISa = fJda,R . ae[n] a{[n] 20 L'invention trouve à s'appliquer dans de nombreux domaines. Un premier exemple concerne le tatouage des fichiers audio. Les signaux orthogonaux sont également très utiles en transmission, où ils sont adaptés aux modulations orthogonales, bi-orthogonales et CDMA. La figure 16 montre, à titre d'exemple non limitatif, que le procédé conforme à 25 l'invention permet de fournir des signaux temporels ou leurs variantes de Fourier à spectres discrets contrôlés au niveau de la modulation des messages. A la démodulation, les données reçues du canal de transmission sont traitées afin de reconstituer les messages émis. Le procédé de la figure 16 peut être valoir a = 1 utilisé pour alimenter une mémoire morte (ROM), ce qui évite d'embarquer le procédé. Sur la figure 16, le message binaire est modulé (au sein d'un bloc 1600) par le signal alloué à l'utilisateur #i à qui est destinée la donnée binaire. Le signal est ensuite traité pour être émis sur le canal radio mobile 1602. En réception, l'utilisateur #i effectue la corrélation du signal reçu (bloc 1604). Du fait que les signaux sont orthogonaux, l'utilisateur #i ne va détecter, dans le flux qu'il reçoit, que les données qui lui sont destinées. Ces signaux peuvent également être utilisés en métrologie, où ils peuvent permettre d'optimiser les données d'excitation à fournir au système étudié, comme l'illustre la figure 17. Cela permet d'augmenter la pertinence du résultat de la mesure effectuée sur le système étudié. Le procédé de la figure 17 peut être utilisé pour alimenter une ROM, ce qui évite d'embarquer le procédé. Un cas typique d'utilisation en métrologie est celui de la mesure de la réponse impulsionnelle des salles acoustiques. Pour effectuer cette mesure, on émet par un haut-parleur une longue séquence périodique de signal dont chaque période est à spectre plat ou contrôlé suivant les cas. Le signal périodique sera filtré par la réponse impulsionnelle de la salle. On récupère le signal sur un microphone pour traitement. La réponse percussionnelle de la salle est obtenue en faisant l'intercorrélation entre le signal reçu par le microphone et la séquence émise. Pour obtenir une réponse de salle précise, il est nécessaire que la séquence émise ait une fonction de corrélation égale à une distribution de Dirac. C'est justement le cas des signaux temporels qui font l'objet de la présente invention. La corrélation est effectuée en prenant une séquence de taille double de celle de la réponse impulsionnelle désirée. Une façon efficace de réaliser la corrélation est d'effectuer la transformée de Fourier discrète du signal reçu, de multiplier le signal fréquentiel obtenu par le complexe conjugué de la transformée de Fourier de la séquence orthogonale et d'effectuer une transformation de Fourier inverse rapide du signal résultant. Comme les signaux sont engendrés dans le domaine spectral, il suffit de stocker en ROM la version fréquentielle de la séquence. Ces signaux peuvent aussi être utilisés comme base pour le codage ou la représentation des signaux. Par exemple, ces signaux peuvent être utilisés en codage audionumérique comme illustré à titre d'exemple par la figure 18. L'utilisation des spectres complexes orthogonaux dans le domaine fréquentiel permet de coder le signal de parole ou audio directement dans ce domaine. Comme les spectres complexes utilisés ont une étendue contrôlée en fréquence, la mise en forme du bruit de quantification peut être effectuée de façon que le bruit suive fidèlement la courbe de masquage sur les bandes de fréquence spécifiées. De plus, comme les signaux sont engendrés par des produits de Kronecker de matrices de base, le produit scalaire du signal à quantifier par toutes les formes d'onde du dictionnaire peut être obtenu efficacement par un algorithme rapide faisant intervenir des papillons comme celui de la Transformée de Fourier Rapide (TFR) ou celui de la transformée de Hadamard réelle. Pour une matrice de dimension Ns engendrée par des produits de Kronecker conformément à l'équation (1.9), le débit par échantillon sera donné par: Débit = log2(Ns)/Ns Pour des valeurs usuelles de Ns d'une dizaine, ce débit sera relativement faible. Pour augmenter le débit, le dictionnaire est élargi en prenant des matrices différentes comme matrices génératrices. Par exemple, pour un ordre 2, il existe 64 matrices de base possibles, les éléments de chaque matrice étant orthogonaux et choisis dans (1, -1, i, -i). Plus précisément, la figure 18 illustre l'utilisation des spectres complexes mutuellement orthogonaux dans un codeur prédictif temporel. La contribution du filtrage d'un signal émis se(n) avec une excitation nulle (bloc 180) est d'abord retranchée du signal (soustracteur 182) pour donner la cible t. La cible dans le domaine fréquentiel est obtenue par Transformée de Fourier Rapide de t (bloc 184). Les échantillons complexes du signal sont quantifiés par un quantificateur 186 défini par un dictionnaire contenant les Ns vecteurs complexes orthogonaux à'(0),...,â(Ns -1). Des opérations inverses de celles qui viennent d'être décrites sont 5 effectuées après passage dans un canal de transmission 188, pour finalement aboutir à un signal reçu srec(n). La quantification revient à minimiser le critère suivant : - ghs(i) 2 i=0,...,Ns-1 E; _ où h est une matrice diagonale de pondération perceptuelle dans le domaine 10 des fréquences et g désigne le gain de normalisation. En minimisant E;, on trouve : T ( ) g = t hTs i (où T désigne ici la matrice transposée) s(i)hhs(i) et l'indice iopt qui minimise le critère d'erreur est donné par : ThT2 ioPt = Arg Max [t (i)] i = 0,..., Ns -1 s(i) h hs(i)1 15 Lenumérateur est égal au produit scalaire de tThT par toutes les formes d'onde du dictionnaire engendré par un produit de Kronecker de matrices élémentaires pour lequel un algorithme efficace du type "transformée de Hadamard" est réalisé. La structure résultante est basée sur une structure en papillon analogue à celle de la TFR. 20 Dans le cas particulier où le gain de normalisation g est connu, le calcul de l'indice optimal se résume à calculer l'indice i0 qui maximise [tTs(i)]2 . Un exemple particulier de mise en oeuvre est obtenu en segmentant le spectre en bandes de fréquence, contigües ou non, de longueur variable, avec éventuellement des zones d'amplitude nulle aux fréquences élevées. 25 Dans le premier cas, on peut par exemple coder l'ensemble du spectre par zones de fréquence croissante ou d'importance perceptuelle croissante (déduite dans ce cas des facteurs d'échelle), au moyen de familles de spectres orthogonaux complexes comme représenté sur la figure 18, chaque zone du spectre étant quantifiée par une matrice engendrée par produits de Kronecker. Les calculs de produits scalaires intervenant dans la quantification sont effectués par des transformations rapides utilisant la structure des matrices. On peut ainsi, progressivement, obtenir un train binaire hiérarchique, propriété recherchée en compression des signaux. La figure 19 représente un exemple d'utilisation des signaux mutuellement orthogonaux dans le cas du tatouage audio. Les signaux ou spectres complexes sont engendrés conformément à la description donnée ci-dessus, le procédé illustré étant soit embarqué, soit fonctionnant "hors ligne", les signaux étant stockés une fois pour toutes dans une ROM. Si on veut transmettre un message binaire d'indice i, on va filtrer et moduler le signal d'indice i (bloc 190) et ajouter le résultat de cette opération au signal audio (additionneur 192). Après transmission (bloc 194), en réception, on effectue d'abord la resynchronisation puis la corrélation (bloc 196) entre le signal reçu et l'ensemble des signaux du dictionnaire de réception. Le signal détecté est celui qui donne le maximum de corrélation. Le fait que les signaux sont à spectre contrôlé permet de ne pas perturber inutilement le signal en insérant la marque potentiellement audible dans des zones du spectre qui, de toute façon, ne seront pas transmises par les codecs. On pourrait en outre envisager d'utiliser les signaux obtenus conformément à l'invention dans le domaine du filtrage numérique. Un dispositif 200 mettant en oeuvre les procédés conformes à l'invention est illustré sur la figure 20. Ce dispositif peut être par exemple un micro-ordinateur 200 connecté à différents périphériques, dont au moins certains sont susceptibles de fournir des informations à traiter selon l'invention. Le dispositif 200 peut comporter une interface de communication 2000 reliée à un réseau (non représenté). Le dispositif 200 comporte par ailleurs un moyen de stockage 2002, tel qu'un disque dur. Il peut aussi comporter un lecteur de supports d'informations 2004 tels que des disquettes, CD-ROM ou encore cartes mémoire 2006. Le support d'informations 2006 et le moyen de stockage 2002 peuvent contenir des données d'implantation logicielle de l'invention ainsi que le code de l'invention qui, une fois lu par le dispositif 200, sera stocké sur le moyen de stockage 2002. En variante, le programme permettant au dispositif de mettre en oeuvre l'invention pourra être stocké en mémoire morte (par exemple une ROM) 2008. En seconde variante, le programme pourra être reçu par l'intermédiaire du réseau, pour être stocké de façon identique à celle décrite précédemment. Le dispositif 200 est relié à un microphone 2010 par l'intermédiaire d'une carte d'entrées/sorties 2012. Les données à traiter selon l'invention seront 10 dans ce cas du signal audio. Ce même dispositif comporte un écran 2014 permettant de visualiser les informations à traiter ou de servir d'interface avec l'utilisateur, qui pourra paramétrer certains modes de traitement, à l'aide d'un clavier 2016, d'une souris ou de tout autre moyen. 15 Une unité centrale (CPU) 2018 exécute les instructions relatives à la mise en oeuvre de l'invention, instructions stockées dans la mémoire morte 2008 ou dans les autres éléments de stockage. Lors de la mise sous tension, les programmes et méthodes de traitement stockés dans une des mémoires (non volatile), par exemple la ROM 2008, sont transférés dans une mémoire 20 vive (par exemple, une RAM) 2020, qui contient alors le code exécutable de l'invention ainsi que les variables nécessaires à la mise en oeuvre de l'invention. Un bus de communication 2022 permet la communication entre les différents sous-éléments du micro-ordinateur 200 ou liés à lui. La représentation du bus 2022 n'est pas limitative et notamment, l'unité centrale 2018 est 25 susceptible de communiquer des instructions à tout sous-élément du micro-ordinateur 200 directement ou par l'intermédiaire d'un autre sous-élément du micro-ordinateur 200. Le dispositif décrit ici est susceptible de contenir tout ou partie du traitement décrit dans l'invention. REVENDICATIONS 1. Procédé de génération d'une pluralité de spectres discrets s(i) de dimension Q, mutuellement orthogonaux et à puissance contrôlée, i désignant le numéro du spectre, lesdits spectres représentant des signaux temporels dans le domaine spectral et étant de module p constant dans un ensemble G de désignation de raies spectrales et nul partout ailleurs, ledit procédé étant caractérisé en ce qu'il consiste à : - déterminer (20) au moins une partie d'une matrice de Hadamard 10 complexe H d'ordre dR = w dans le cas de spectres de signaux réels et dR = 2.w dans le cas de spectres de signaux complexes ; - déterminer (22) le prolongement P de la matrice H à partir de G et de la dimension Q ; et -obtenir (22) lesdits spectres à puissance contrôlée s(i) = 15 p.P(H[.][i]), où H[.][i] désigne la ième colonne de la matrice H. 2. Procédé selon la revendication 1, caractérisé en ce que l'étape (20) de détermination d'au moins une partie de la matrice de Hadamard complexe consiste à obtenir une colonne (Hc,é[.][i]) d'une matrice des rotations calculée à partir de clés prédéterminées de rotation et de permutation 20 appliquées à une matrice de Hadamard de référence (Href )• 3. Procédé selon la revendication 2, caractérisé en ce qu'il comporte en outre une étape de décomposition de l'ordre dR de ladite matrice de Hadamard de référence en un produit de facteurs (f;) et une sous-étape de calcul du plus petit commun multiple (8) de l'ensemble desdits facteurs pour la 25 détermination de la matrice de Hadamard de référence. 4. Procédé selon l'une quelconque des revendications précédentes, caractérisé en ce qu'il comporte en outre une étape (24) consistant à déterminer un signal s(i)[k] = ê(i)[x]. f F(go[k[a]][x[a]] XEQ \ aE[X+T] j 30 où :• i désigne le numéro du signal, • Q désigne un ensemble de coordonnées, • X désigne le nombre de dimensions spatiales, • T désigne le nombre de dimensions temporelles et 5 • F(qa) désigne la matrice de Fourier d'ordre qa, de façon à engendrer une pluralité de signaux temporels s(i) mutuellement orthogonaux. 5. Procédé de génération d'une famille de signaux temporels t(i), caractérisé en ce qu'il consiste à combiner des familles de signaux temporels 10 mutuellement orthogonaux engendrés par un procédé selon la revendication 4 et dont les supports spectraux sont disjoints. 6. Utilisation de signaux temporels ou spectres complexes mutuellement orthogonaux engendrés par un procédé selon l'une quelconque des revendications précédentes pour l'étalement spectral dans des systèmes 15 de transmission à étalement de spectre. 7. Utilisation de signaux temporels ou spectres complexes mutuellement orthogonaux engendrés par un procédé selon l'une quelconque des revendications 1 à 5 pour le tatouage audio et sa détection. 8. Utilisation de spectres complexes mutuellement orthogonaux à 20 spectre de puissance contrôlé engendrés par un procédé selon l'une quelconque des revendications 1 à 5 pour le codage ou la représentation de signaux audio, les signaux audio étant quantifiés à l'aide d'un dictionnaire ou d'une famille de dictionnaires à valeurs réelles ou complexe représenté(s) par une matrice de Hadamard complexe engendrée par des produits de Kronecker. 25 9. Utilisation de signaux temporels ou spectres complexes mutuellement orthogonaux à spectre de puissance contrôlé engendrés par un procédé selon l'une quelconque des revendications 1 à 5 pour l'optimisation de données d'excitation de métrologie. 10. Dispositif de génération d'une pluralité de spectres discrets s(i) 30 de dimension Q, mutuellement orthogonaux et à puissance contrôlée, i désignant le numéro du spectre, lesdits spectres représentant des signaux temporels dans le domaine spectral et étant de module p constant dans unensemble G de désignation de raies spectrales et nul partout ailleurs, ledit dispositif étant caractérisé en ce qu'il comporte : - des moyens pour déterminer au moins une partie d'une matrice de Hadamard complexe H d'ordre dR = w dans le cas de spectres de signaux réels 5 et dR = 2.w dans le cas de spectres de signaux complexes ; - des moyens pour déterminer le prolongement P de la matrice H à partir de G et de la dimension Q ; et -des moyens pour obtenir lesdits spectres à puissance contrôlée s(i) = p.P(H[.][i]), où H[.][i] désigne la ième colonne de la matrice H. 10 11. Produit programme d'ordinateur pouvant être chargé dans un appareil programmable, caractérisé en ce qu'il comporte des séquences d'instructions pour mettre en oeuvre un procédé selon l'une quelconque des revendications 1 à 5, lorsque ce programme est chargé et exécuté par l'appareil programmable. 15