Login| Sign Up| Help| Contact|

Patent Searching and Data


Title:
METHOD FOR GENERATING MUTUALLY ORTHOGONAL SIGNALS HAVING A CONTROLLED SPECTRUM
Document Type and Number:
WIPO Patent Application WO/2008/122744
Kind Code:
A1
Abstract:
The invention relates to a method for generating mutually orthogonal signals having a controlled spectrum, comprising the generation of a plurality of mututally orthogonal, controlled-power discrete spectra s(i) having dimension Q, i designating spectrum number. The aforementioned spectra represent time signals in the spectral range and have a modulus μ that is constant in a spectral line designation set G and zero everywhere else. The inventive method comprises the following steps: determining (20) at least part of a complex Hadamard matrix H of order dR = w in the case of spectra of real signals and dR = 2.w in the case of spectra of complex signals; determining (22) the extension P of matrix H from G and dimension Q; and obtaining (22) controlled-power spectra s(i) = μ.P(H[.][i]), wherein H[.][i] designates the i-th column of matrix H. In addition, a plurality of mutually orthogonal time signals s(i) is also generated from said discrete complex signals.

Inventors:
LOZACH BRUNO (FR)
BOLLO JOSE (FR)
LE GUYADER ALAIN (FR)
Application Number:
PCT/FR2008/050391
Publication Date:
October 16, 2008
Filing Date:
March 07, 2008
Export Citation:
Click for automatic bibliography generation   Help
Assignee:
FRANCE TELECOM (FR)
LOZACH BRUNO (FR)
BOLLO JOSE (FR)
GUYADER ALAIN LE (FR)
International Classes:
H04J13/00; H04J11/00; H04J13/12
Domestic Patent References:
WO2000001091A12000-01-06
WO2000077962A12000-12-21
WO2000001091A12000-01-06
Foreign References:
US6014407A2000-01-11
US20020012386A12002-01-31
Other References:
PIERRE LESCUYER: "UMTS, les origines, l'architecture, la norme", 2002
Attorney, Agent or Firm:
FRANCE TELECOM/FTR & D/PIV/BREVETS (38/40 rue du Général Leclerc, Issy Moulineaux Cedex 9, FR)
Download PDF:
Claims:

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 μ 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 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) = μ 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 (H cle [.][i] ) d'une matrice des rotations calculée à partir de clés prédéterminées de rotation et de permutation appliquées à une matrice de Hadamard de référence (H ref ).

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 (θ) de l'ensemble desdits facteurs pour la 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] = [ k N][x[α]] 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 • F (qJ désigne la matrice de Fourier d'ordre q α , 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 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 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 à spectre de puissance contrôlé engendrés par un procédé selon l'une quelconque des revendications 1 à 4 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.

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) 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 μ constant dans un

ensemble 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 et d R = 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(H[.][i]), où H[.][i] désigne la ième colonne de la matrice H. 11. Dispositif de codage de signaux audio, caractérisé en ce qu'il comporte un dictionnaire dans lequel sont stockés des spectres complexes mutuellement orthogonaux engendrés par un dispositif conforme à la revendication 10.

12. 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 œuvre un procédé selon l'une quelconque des revendications 1 à 5, lorsque ce programme est chargé et exécuté par l'appareil programmable.

Description:

PROCEDE DE GENERATION DE SIGNAUX MUTUELLEMENT ORTHOGONAUX DONT LE SPECTRE EST CONTROLE

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-OO 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 μ 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 dimension Q ; et

- obtenir les spectres à puissance contrôlée s(i) = μ.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 à 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 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 d R de la matrice de Hadamard de 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 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] = , 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 • F (qJ désigne la matrice de Fourier d'ordre q α , de façon à engendrer une pluralité de signaux temporels s(i) mutuellement 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 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 à 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 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 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 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 K b bits est représenté par K b 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.

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 par exemple effectuée par un algorithme rapide dont la structure est dérivée de la façon dont est construit le dictionnaire, dans un cas particulier de réalisation, 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 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 μ 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(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 œuvre 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.

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 œuvre 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 œuvre 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 œuvre 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 œuvre 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 œuvre 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[θ], v[i] , 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≤i<Ns, i étant la variable qui désigne le numéro du signal.

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 E Ls (le produit cartésien de l'espace vectoriel E à la puissance Ls) où E est soit le corps des réels 9? (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≤n<Ls, n étant la variable qui désigne l'échantillon temporel.

Dans la suite, on utilisera des matrices de Fourier d'ordre (ou dimension) quelconque qui seront notées F (n ). La matrice de Fourier d'ordre n est la matrice carrée définie par F (n) <≡ C nxn et

F (n) [l][c] = e " (1.1 )

Cette matrice présente les propriétés suivantes : F (n) [l][c]| = 1 et t -

F (π) -F (π) = nl (n) (1.2) où F (n) désigne la matrice conjuguée de F (n) , 'F (n) désigne la matrice transposée de la matrice F (n) et l (n) désigne la matrice identité d'ordre n. On en

déduit F ( - n 1 , = -- ïç ) -

'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 <=> i ≠ j .

On considérera les produits scalaires usuels :

- dans le cas réel (E = 9î ) : (a|b)='a.b

- dans le cas complexe (E = C ) : (a|b)='ïï.b

On aura aussi à considérer les spectres complexes discrets s(i) <≡ C Ls définis à partir des signaux temporels s(i) par : s(i) - F Ls 1 • 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 F e .

Le spectre de puissance du signal temporel est donné en fonction du spectre complexe par :

P.(i)M - |s(i)[k]| 2 = (s(i)[k]|s(i)[k]) = l(ïjjkj s(i)[k]

Dans la suite, on dira donc indifféremment que le signal temporel et le spectre complexe sont à puissance contrôlée.

Les matrices F (Ls) et F (Ls) étant orthogonales (équation (1.2)), le signal temporel est donné en fonction du spectre complexe par : s(i) = F (LB) s(i) (1.4) c'est-à-dire par transformée de Fourier discrète inverse du spectre complexe.

Pour que le signal s(i) soit réel (E = 9î ), on montre qu'une condition nécessaire et suffisante est que les égalités suivantes soient vérifiées : s(i)[0] = s(i)[O] et Vk e [i-Ls - iJs(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 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 dxd ) ayant les propriétés suivantes : ι H.H = d.l (d) (propriété d'orthogonalité) et |H[l][c]| = 1 . On remarque que les matrices de Fourier sont des matrices de Hadamard complexes. Les 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 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 <8> est le produit de Kronecker ou produit tensoriel.

On rappelle que : (G ® H)[I][C] = (G[l g ][c g ])(H[l h ][c h ]) (1.6) où I = l g .h + l h et c = c g .h + c h .

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 [S mιn -S max ] u [Ls - S max -Ls - S mιn ] « |s(i)[k]| = μ k * [S mιn -S max ] u [Ls - S max -Ls - S mιn ] « 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, μ, entre un index de fréquence basse S m i n et un index de fréquence haute S max et nul partout ailleurs.

La fréquence basse F min est liée à l'index S min et à la fréquence d'échantillonnage F e par : s 1 ^ mIn - F min — p 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 S m i n = 0 et S max = 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 montre que : (s(i)|s(j)> = (F (Ls) .s(i)|F (Ls) .s(j))^ t I(r). t F^;.F (Ls) .s(j) = Ls.('ê(ï).s(j)) = Ls.<s(i)|s(j)> .

On ramène alors le problème de l'orthogonalité des signaux dans le domaine des spectres complexes s(i) .

Les raies spectrales en dehors de la réunion d'intervalles [S mιn ---S max ]u[Ls-S max ---Ls-S mιn ] étant nulles, il suffit d'assurer l'orthogonalité pour les valeurs des signaux à spectre discret s(i) pour ke[S mιn ---S max ]u[Ls-S max "-Ls-S mιn ]. Notons w= 1 + S max - S min le nombre correspondant à la moitié du nombre de raies de module μ.

Cette opération, qui restreint l'étude aux valeurs non nulles, est appelée restriction. On la note R:C Ls →C 2w . Son opération inverse est appelée prolongement et est notée P : C 2 w → C Ls .

Dans le cas réel, il suffit de restreindre pour k e [S mιn ---S max ]. Les valeurs restantes, d'indice k e [Ls-S max ---Ls-S mιn ], se déduisent des précédentes par conjugaison suivant la propriété s(i)[k] = s(i)[Ls - k] des signaux réels, rappelée plus haut. On a alors : R:C Ls →C w et P : C w → C Ls . Notons r(i) la restriction de s(i). Notons d R la dimension de la restriction r(i) , c'est-à-dire r(i) e C dR . 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 r(i), telle que s(i) = F (Ls) .P(r(i)), 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 r(i) :

J |r(i)[p]| - μ Vi Vp [(f(i)| f(j)) = O o 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 de Hadamard complexe H d'ordre dR multipliée par μ.

Dans le cas simple où r(i) correspond à la ième colonne de la matrice H, ce qu'on note r(i) = μ.H[.][i], on a : s(i) = F (Ls) .P(μ.H[.][i]) = μ.F ( Lβ).P(H[.][i])

(s(i)|s(j)> = Ls.['ê(i).s(j)] = Ls.['p(P(i)).P(P(j

(s(i)| S(J)) = ^ ('HTm™.) = - (('HΉW

R R

Ainsi :

<s (i >is (i)M , , w,,( Wiω ) <*: tr 2

L'analyse de dimensionnalité montre que la relation suivante doit être respectée : Ns≤dR, et, dans le cas réel, d R ≤ |Ls et dans le cas complexe, dR≤Ls. Ce sont les contraintes du système.

On écrira synthétiquement que S est une famille libre de μ. F. P(H), où F est la matrice de Fourier, P est le prolongement déduit de S max et S m i n et H est la matrice de Hadamard complexe d'ordre d R déduit de S max et S m i n . On a expliqué ci-dessus comment on construit une famille S de signaux temporels s(i) ayant les propriétés de l'équation (1.7) :

II suffit de trouver une matrice de Hadamard complexe H puis de prendre : s(i) = μ.F (Ls) .P(H[.][i]) avec μ = 1

où P est le prolongement déduit de S max et S mιn et de la nature de E (cas réel ou cas complexe), et où F(Ls) est la matrice de Fourier d'ordre Ls, ce qui, en d'autres termes, correspond à l'opération dite "transformée de Fourier discrète inverse dans le domaine complexe", qui est souvent notée TFD (L 1 S) . On a alors souvent une des deux définitions suivantes :

TFD ( ^(X) = -^. F (Ls) .x ou TFD (L 1 s) (x) = F (Ls) .x .

Cette transformation de Fourier discrète sera avantageusement réalisée par une Transformée de Fourier Rapide, opération bien connue de l'homme du métier.

Ce procédé de construction des s(i), l'objet de base de la présente invention, est schématisé sur la figure 2.

Le module 20 calcule la ième colonne d'une matrice des rotations d'une matrice de Hadamard complexe H cle dont la génération dépend d'une clé.

Les rotations sont exprimées par des nombres entiers, c'est-à-dire :

H cle [.][i] e Z dR .

La valeur θ permet, par la formule z θ (n) = 0 ë 1 , de passer de la rotation entière au nombre complexe de module 1 correspondant. Une clé est utilisée de façon à obtenir des familles de signaux distinctes. Dans une application de la présente invention au tatouage de fichiers de signaux, cela permet d'avoir des tatouages distincts qui peuvent se superposer sans interagir.

La clé est un nombre entier qui permet d'engendrer deux permutations de Ns éléments et deux fois Ns rotations entières d'ordre θ, c'est- à-dire un nombre de 1 à [NS!.θ NS ] 2 . Dans la pratique, ces nombres étant généralement très grands, on utilise les clés pour initialiser un générateur permettant d'extraire l'information nécessaire. L'introduction de la clé permet

d'introduire un secret dans le processus de génération des séquences et donc de restreindre la possibilité de leur utilisation aux seuls possesseurs de la clé.

Le module 22 transforme un vecteur de rotations de Z dR en un vecteur complexe à spectre discret de C Ls .

La transformation dépend de la nature du signal mais ne dépend pas de i.

Dans le cas de signaux réels :

S mιn < k < S max

Ls - S max < k < Ls - S mιn autrement

Dans le cas de signaux complexes :

S mιn < k < S max =* s(i)[k] = μ.z θ (H cle [k - S mιn ][i])

Ls - S max ≤ k ≤ Ls - S mιn => s(i)[k] = μ.z θ (H [k + 2.S max -M - Ls - SJi]) autrement =^> s(i)[k] = 0

Dans le cas où on se limite à la génération de spectres complexes mutuellement orthogonaux, la procédure est terminée à ce stade.

Le spectre complexe s(i) peut être utilisé comme tel, ce qui a été représenté sur la figure 2 par une flèche de sortie de l'algorithme. Sinon, la génération de signaux temporels mutuellement orthogonaux est réalisée par le module 24 qui transforme un vecteur complexe s(i) dans C Ls et à spectre contrôlé en un vecteur temporel à spectre discret contrôlé de E Ls .

Le module 24 est un module d'application d'une transformée de Fourier discrète inverse d'ordre Ls. Cette opération est bien connue de l'homme du métier. Elle ne dépend pas de i.

On détaille ci-dessous les opérations effectuées par le module 20 de calcul de H cle [.][i] .

On a vu ci-dessus que ce module calcule une colonne de la matrice H cle . 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 : ~ θ

^cIe ~ /^ - ' n 0~' de ) , 0U ^cIe = RcIe hg- PcIe hg- H re f. PcIe col -RcIe col, Où :

2πv- 1

- Pcie hg et Pcie coi sont les matrices de permutation correspondant aux permutations σ c ι e hg θt σ c ι e coi ; - R c ie hg et Rcie coi sont des matrices diagonales de rotations (des lignes et des colonnes) correspondant aux rotations R c ie hg[x][x] = z θ (p c ie hg(x)) et RciecoiMM = z θ (Pcie coi(x))- En pratique, n'importe quelles rotations peuvent être utilisées et pas seulement les rotations d'ordre θ, c'est-à-dire que les matrices R c ie ι ιg et Rcie coi peuvent aussi être définies comme les matrices diagonales R cle hg [x][x] = e 2π/l p ^ (x) et R cle col [x][x] = e 2π/l p (x) . En pratique, l'application des rotations est optionnelle ;

- H r ef est la matrice de Hadamard complexe de référence canoniquement construite par le procédé en fonction de d R ;

- θ est le plus petit ordre de la racine de l'unité qui permet d'exprimer les rotations par des entiers.

Le calcul devient :

L'expression des fonctions auxiliaires σ c ie hg, σ c iecoi, Pcie hg et p c iecoi 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 H re f, la matrice de Hadamard complexe de référence, s'écrit comme un produit de nombres. On note DF(dR)

= {f,} une décomposition de dR en un produit de facteurs f, (ainsi, d R = ) 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(d R )| .

Dans la pratique, on peut prendre pour DF la décomposition en facteurs premiers.

Par exemple, d R - 100 => DF(d R ) - {2;2;5;5} et Nf - 4 .

La matrice de Hadamard complexe H ref de référence construite par le procédé est définie par :

H ret . = R V n i l ® R V f i , I ® --- ® R V f m ,I = i< ®ι<Nf R " n ' (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 fi. La génération de H re f 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 H re f 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 d R , d'où θ = ppcm(DF(d R )) = ppcm({fι}). Par exemple, θ(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 θ 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 H ref [l][c] utilise le fait qu'un nombre n tel que 0≤n<dR se décompose de manière unique dans le système numérique déduit de DF(d R ), à savoir :

n = σ MV]IM = ∑ n ' - b| = n i + f i-( n 2 +f2-(n 3 + • • • ))

"l≤i≤Nf ^ 1<j<ι J "l≤i≤Nf

Cela constitue en fait une généralisation de l'équation (1.6) au cas de la décomposition de d R en un produit de facteurs.

Ainsi, ayant défini, c'est-à-dire décomposé le numéro de ligne I = ∑l,.b, et le numéro de colonne c = ∑c,. b, , on obtient, à l'issue des calculs

"l≤i≤Nf "l≤i≤Nf suivants :

H 1Bf Pl[C] θ I, .c

H - [I][ C ] = ii≤≤Iii≤≤NNff- - -ciππ.v — I ψ 1 I 2 *^ la valeur cherchée :

θ ~

Le facteur — étant entier, H ref est une matrice d'entiers, ce qu'on

cherchait effectivement à obtenir.

La figure 3 montre l'organisation du processus de calcul de la ième colonne de la matrice des rotations H [.][i] .

L'étape 300 de préparation consiste à : a) calculer la décomposition de d R en un produit de facteurs fi, notée DF(d R ) = {fi} ; b) calculer le plus petit commun multiple de l'ensemble DF(dR), noté θ = ppcm(DF(d R )) ; c) calculer avec la clé les fonctions auxiliaires σ c ié,iig, σ c ié,coi, Pcié.iig et

L'étape 302 consiste à effectuer la permutation σ c ié,coi(i) puis à calculer directement H ref [.][σ clé col (i)] . A cette dernière matrice est ajoutée, à 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 θ à 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 θ est congru à zéro modulo D.

Si le test 410 est négatif, on attribue à la variable θ la valeur de la variable D.θ (é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 fi 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

θ λ

H ref [ ][σ clé col (i)] consiste à calculer les H ref [l][c] = ∑ hr I c où c = σ c ié,coi(i). i≤i≤Nf l T J 1 J

Un exemple élémentaire de mise en œuvre de cette étape est illustré par l'organigramme de la figure 5.

Les I j et q 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 σ c ié, ι(i)-

Puis on vérifie lors d'un test 502 si I = d R . 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 H ref [l][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 (le signe [J

désignant la partie entière) à la variable x et on calcule I j = I - x.f, (étape 512).

Ensuite, on attribue la valeur de à la variable y et on calcule η = c - y.f j (étape 514).

L'étape 516 suivante consiste à attribuer la valeur de a + — - 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 H de [.][i] en calculant les H cle [l][i] - H ref cle lιg (l)][σ cle col (i)] + p cle lιg (I) + p cle 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 σ c ié,coi(i), une variable h à la valeur de H ref [.][c] et une variable r à la valeur de la fonction auxiliaire p c ié,coi(i)-

Puis lors d'un test 602, on vérifie si I = d R . Si ce test est positif, l'algorithme se termine. Sinon, on attribue à la variable H de [l][i] la valeur de l'expression r + h[σ c ié,hg(l)] + Pcié,hg(l) (é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 H de [l][i] .

Dans toute sa généralité, la présente invention permet d'engendrer des familles S = {s(i)} de signaux discrets mutuellement orthogonaux de l'espace A d'évolution du système :

A _ t γ i 2 x xY x ) Zi XZ2>< XZτ = E Y 1 XY 2 X X Yx X Z 1 X Z 2 X Z τ ayant X dimensions spatiales réelles (E = 9î ) ou complexes (E = C) et T dimensions temporelles et d'engendrer la famille S = (s(i)} de leurs spectres complexes mutuellement orthogonaux dans :

ZpY 1 XY 2 X xY x xZ τ _ pY i X γ 2 χ XY x XZ 1 XZ 2 X Z 1 - 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 nuls inférieurs à n.

Notons Q = [Yi] χ ... χ [Y x ] χ [Zi] χ ... χ [Zτ] = [qo] x - -- x [qx+τ-i] 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 c\ \ en correspondance avec les dimensions Yi et Z 1 du système. Q définit les dimensions du système : |Q| , 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 ι-> f(x) . Autrement dit, un signal est assimilable à f, un élément de l'ensemble des fonctions de Q dans E, noté F(Q 1 E), soit f <≡ F(Q 1 E). L'ensemble F(Q 1 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 1 E).

Par définition des spectres complexes dans le domaine de Fourier, on a, pour tout signal f de F(Q 1 E) :

et

Notons QP l'ensemble des parties de Q (QP = ^(Q)), c'est-à-dire l'ensemble qui contient tous les sous-ensembles de Q. Soit G = {cg a = (g a ,clé a ) / g a <≡ QP et a e [n]} une famille de n parties g a de Q mutuellement disjointes, c'est-à-dire telles que si a ≠ b alors g a ng b = 0. Les g a 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 cg a

= (g a ,clé a ) exprime quelles sont les fréquences spatio-temporelles composant la bande g a ; les fréquences hors g a ont une amplitude nulle.

Le procédé dans toute sa généralité permet de créer n familles S a =

{s a (i)} de signaux et S a = {s a (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 S a est contrôlé par sa bande g a , soit k e g a « |s(i)[k]| = μ a

Va e [n], Vi e S a ,Vk e Q (1.10) k * g a « Is(J)[K]I = 0

2. les familles sont décorrélées entre elles, soit V(a,b) e [n^a ≠ b ^ (vf e S a ,Vg e S b ,(f|g) = O et (f|g) = θ)

3. les signaux d'une famille sont décorrélés entre eux, soit

Va e [n], V(U) e |S a | 2 ,(s a (i)|s a (j)) = 0 « (s a (i)|s a (j)) = 0 « i ≠ j

4. la puissance d'un signal est contrôlée, soit

Va e [n],Vi e S a ,(s a (i)|s a (i)) = 1

Le procédé permet, à partir des familles S a = {s a (i)} de signaux et S a = (s a (i)} de leurs spectres complexes, d'engendrer une famille S = {s(i)} de signaux mutuellement orthogonaux (décorrélés) et la famille S = (s(i)} de leurs spectres complexes eux-mêmes orthogonaux, et dont le spectre de puissance dans chacune des bandes g a est indépendant et quelconque.

Le procédé permet, à partir des familles S 3 = {s a (i)} de signaux et S a = (s a (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 S a 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 ego, cgi, cg 2 , etc. Chaque bande g a donne lieu à la génération (via les modules 70, 71 , 72, etc.) d'un signal s a (i) et de sa variante s 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 c 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 s(i,c) et/ou les signaux s(i,c) cherché(s).

Les facteurs c 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 s a (i) du ième signal de la bande g a . Le signal s(i) est obtenu en sortie du module 84, par une transformée de Fourier discrète inverse de son spectre complexe s a (i) , par une simple mise en œuvre de la formule

s(i)[k] , éventuellement optimisée selon les 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 "calcul du prolongement" 90 qui détermine, en fonction de la contrainte cg a et des dimensions du système, la dimension d a ,R des matrices de Hadamard (et donc le nombre maximal de signaux de la famille) et les données de prolongement prlg a 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. L'organigramme de la figure 10 montre plus en détails l'organisation de l'étape de calcul spectral mise en œuvre par le bloc 82 de la figure 8. Cette étape comprend :

- l'étape 302 de calcul de H ref [ .][σ a de c0| (i)] illustrée sur la figure 3 et explicitée sur la figure 5 ; - l'étape 304 de calcul de H a de [.][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

contrôlée. La formule est : H a clé [l][i] = . 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 s a (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 0. Puis un test 112 consiste à vérifier si la valeur de la variable I a atteint le nombre maximal d a ,R de signaux de la famille. Si tel est le cas, la procédure se termine. Sinon, on calcule

^^ H 3 de [I][I]

H a clé [l][i] = μ a .e θ 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 = 9î ) 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 g a à la variable prlg a . Puis lors d'une étape 122, on attribue la valeur de |g a | à la variable d a ,R. On calcule

ensuite μ a = (étape 124), ce qui termine la procédure. Le respect de la propriété de puissance contrôlée, c'est-à-dire (s a (i)|s a (i)^ = 1 , amène en effet à

poser μ a

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 s(i)[.] à la valeur 0 et au cours d'une étape

132, on initialise une variable I à la valeur 0. Puis un test 134 consiste à vérifier

si la variable I est égale à d a,R . Si tel est le cas, la procédure se termine. Sinon, on calcule, au cours d'une étape 136, s(i)[pr IgJk]] = H a clé [l][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é s a (i) = s a (i). Cette égalité est vraie quand Vk e Q, s a (i)[k] = s a (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 = (K 0 , K 1 , . . . , K x+ J -1 ) -w- k = (k 0 , K 1 , . . . , K x+ J -1 ) f k. = 0 <=> k. = 0 où < _ . On voit que k, = k, et q, pair => q, /2 = q, 12 .

[k, ≠ O o k, = q, - k, Cette contrainte est prise en compte lors de l'étape dite de

"préparation du prolongement" illustrée en détails par l'organigramme de la figure 14.

On commence par des étapes d'initialisation de d a ,R à la valeur 0 (étape 140), des données de prolongement prlg a à l'ensemble vide (étape 142) et de la variable I à la valeur 0 (étape 144).

On procède ensuite à un test 146 pour vérifier si I = |g a | . Si tel est le

1 cas, on calcule μ a = , = (étape 148) et la procédure se termine. Sinon,

J a,R on attribue à la variable k la valeur de g a [l] (étape 150). On remarquera que la valeur de μ a est différente selon que les signaux sont réels ou complexes. Puis un test 152 consiste à déterminer si k = k . Si tel est le cas, on incrémente d'une unité la valeur de la variable I (étape 154) puis on retourne au test 146. Sinon, on vérifie si k e prlg a (test 156). Si tel est le cas, on passe à l'étape 154. Sinon, on détermine lors d'un test 158 si k e prlg a . Si tel est le cas, on passe à l'étape 154. Sinon, on ajoute k aux données de prolongement (étape 160), on incrémente d'une unité la valeur de d a ,R (étape 162) puis on passe à l'étape 154.

Cette préparation du prolongement supprime les éléments de g a qui sont indésirables. Ainsi, la dimension d a ,R peut avoir une valeur différente de

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 s a (i)[prlg a [k]] = H a cle [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 <≡ Q, s a (i)[k] = s a (i)[k] . Dans ce cas, le calcul montre que le facteur μ a doit 1 valoir μ a =

Le nombre maximal de signaux de la famille S engendrée selon G 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,

= min S 'a 3 = min d ae[n] ae[n] a R '

- indépendance des bandes entre elles, |S| = ] ~ [|S a | = ] ~ [d a R . ae[n] ae[n] 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 à 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

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.

Le dispositif de codage illustré à la figure 18 comporte un dictionnaire dans lequel les spectres complexes générés selon le procédé de l'invention sont stockés. Ce type de dictionnaire est utilisé dans le codage ou le décodage de signaux audio pour mettre en oeuvre l'étape de quantification et de quantification inverse.

Dans un exemple particulier, 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 alors ê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 = log 2 (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 s e (n) avec une excitation nulle (bloc 180) est d'abord retranchée du signal (soustracteur 182) pour donner la cible t. La cible t 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 s(0),...,s(Ns - 1) .

Des opérations inverses de celles qui viennent d'être décrites sont effectuées après passage dans un canal de transmission 188, pour finalement aboutir à un signal reçu s re c(n).

La quantification revient à minimiser le critère suivant :

E, = |t - ghs(i)| 2 i = 0,...,Ns - 1 où h est une matrice diagonale de pondération perceptuelle dans le domaine des fréquences et g désigne le gain de normalisation. En minimisant Ej, on trouve : t ' h ' s(i) , ^ j . . . - - , . - . g = — — (ou désigne ICI la matrice transposée) s(i) h ' hs(i) et l'indice i op t qui minimise le critère d'erreur est donné par :

Ns - 1 Le numérateur est égal au produit scalaire de t τ h τ 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. Dans le cas particulier où le gain de normalisation g est connu, le calcul de l'indice optimal se résume à calculer l'indice i op t qui maximise [t τ s(i)] 2 .

Un exemple particulier de mise en œuvre 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.

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 codées.

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 œuvre 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 œuvre 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 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.

Une unité centrale (CPU) 2018 exécute les instructions relatives à la mise en œuvre 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 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 œuvre 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

susceptible de communiquer des instructions à tout sous-élément du microordinateur 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.