Forums de Abcelectronique

Forums de Abcelectronique (http://www.abcelectronique.com/forum/index.php)
-   Electronique Analogique et Numérique (http://www.abcelectronique.com/forum/forumdisplay.php?f=1)
-   -   Filtre Numérique Passe-Bande (http://www.abcelectronique.com/forum/showthread.php?t=38299)

Franck26 28/08/2007 13h53

Filtre Numérique Passe-Bande
 
Bonjour à tous,
Je me pose des questions par rapport à la charge de travail que demande un filtrage passe bande sur un micro type 24F.
Je pose le probléme:
Communication par infrarouge,
16 modules émetteurs,
Chaque émetteur émet sur une fréquence différente,
Les émetteurs ne sont pas synchronisé,
1 récepteur.

Donc mon récepteur va recevoir les 16 fréquence porteuse en même temps. Et c'est là que je souhaité utiliser un filtrage numérique pour séparer les data des 16 émetteurs.

J'ai peur que la charge de travail soit trop importante pour le micro. Quand pensez-vous?

Merci pour toute info,
A+.

Delphy113 28/08/2007 14h01

Re : Filtre Numérique Passe-Bande
 
Pour quelle fréquence d'échantillonnage des données ? Et quelles sont les largeurs des canaux et distance entre deux canaux ?
Si les canaux sont assez éloigné le filtre sera plus simple et donc moins gourmand en calcul.

Franck26 28/08/2007 14h29

Re : Filtre Numérique Passe-Bande
 
Je pensé utiliser des fréquence comprise entre 10kHz et 100kHz avec un échantillonnage a 1MHz.
Je pense que ca risque de faire des canaux un peu serré, quand pense tu?
Je ne voulais pas dépasser 100kHz pour ne pas avoir a utiliser une usine a gaz pour les convertion A/N...
Merci pour ta réponse.

Delphy113 28/08/2007 14h36

Re : Filtre Numérique Passe-Bande
 
« Posté par Franck26 : Je pensé utiliser des fréquence comprise entre 10kHz et 100kHz »

Tu parle de quelles fréquences ? fréquence de ton signal a transmettre ou positions des différents canaux ?

Franck26 28/08/2007 14h37

Re : Filtre Numérique Passe-Bande
 
J'oublié:
pour la largeur des canaux, je suppose que sa dépend de la vitesse a laquelle je veux transmettre la data, c'est bien ca?

Franck26 28/08/2007 14h38

Re : Filtre Numérique Passe-Bande
 
Je parlais des fréquences porteuses des 16 canaux: la position des différents canaux.

Delphy113 28/08/2007 14h43

Re : Filtre Numérique Passe-Bande
 
Ok donc ca fait pas forcément serré, tout dépend de la largeur de tes canaux. Quelle est la largeur de canal (ou frequence max du signal a transmettre) ?

pazcal 28/08/2007 15h25

Re : Filtre Numérique Passe-Bande
 
Tu peux laisser tomber tout de suite, je crois que tu te rends pas trop compte de ce que tu souhaites réaliser.... En premier lieu, pour avoir des canaux à bande limitée, il va falloir filtrer le signal original, choisir judicieusement la modulation, et en réception il va falloir séparer les canaux avec des filtres par exemple (ou des PLL numériques), puis démoduler le signal, et récupérer els données avec un discriminateur. Pour les fréquences que tu indiques, tu vas mettre ton micro à genoux, enfin couché meme...
N'oublies pas que tu dois appliquer Shannon pour échantillonner le signal, donc en utilisant 16 canaux de 10kHz (par ex), cela imposera une fréqunece mini de 320kHz, et tu devras réaliser toutes tes opérations (filtrage, discrimination, récupération des données et de l'horloge) en 1/350000s ... C'est loin d'être gagné
Par contre, si les télécommandes n'émettent pas (toutes) simultanément, tu peux ruser, mais il faudrait donenr plus d'infos.

a plus

Franck26 28/08/2007 19h29

Re : Filtre Numérique Passe-Bande
 
Je préférais les réponses de Dephy113...
Pour la fréquence du signal a transmettre ce serait de l'ordre de 2kHz.

Pour Pazcal: en effet je sentais bien qu'il y allait avoir quelques soucis (d'ou ma question)...
Donc pour toi c'est pas faisable ou est ce que c'est faisable mes autrement?
Mon but est de pouvoir recevoir 16 signaux en même temps.
Je pensais a mon récepteur GPS (je sais que c'est pas à la porté d'un particulier), il est capable de recevoir une vingtaine de canaux en même temps et de faire ces calculs et cela 10 fois par seconde.
Donc je voulais savoir comment c'était possible qu'il recoive tous les canaux en même temps? Technologie dédier?

Merci pour les info.
A+.

pazcal 28/08/2007 21h16

Re : Filtre Numérique Passe-Bande
 
Ce n'est qu'une question de codage, tu peux recevoir 200 canaux numériques avec ton PIC. Le problème, c'est que dans ton cas c'est la méthode que tu utilises... Ce serait peut être plus judicieux (si possible) de multiplexer tes canaux et de les multiplexer en un seul. Dans ce cas, tu auras bien plusieurs canaux, mais une seule démodulation, et un démultiplexage, beaucoup plus simple pour un processeur comme le tien.
A plus

Franck26 28/08/2007 22h20

Re : Filtre Numérique Passe-Bande
 
OK pour le multiplexage, ca ne me poserais pas de probléme si les signaux des émetteurs étaient synchronisés.
Malheureusement dans mon cas c'est pas possible car les emetteur ne peuvent pas recevoir...

Et avec l'utilisation d'un FPGA tu crois que c'est possible?

En faite je n'ai vraiment pas idée du calcul qui devra être fais pour le filtrage (je ne parle pas de la démodulation). Est ce qu'il y aurais un logiciel tous bête qui a partir du gabari du filtre me sorte un calcul a implémenter?

En pensant a ca je me suis posé la question du téléphonne portable qui n'a peut-être rien a voir, mais ca me tracasse un peu:
Un portable recois bien les ondes radio de plusieur emetteur a la fois, donc comment il fait pour filtrer juste ce qui lui est destiné?
Est ce que les émetteurs qui sont proches les un des autres éméttent sur des fréquences différentes?
Ca sort un peu du sujet, j'ouvrirais peut-être un autre post...
A+.

ON5MJ 28/08/2007 23h56

Re : Filtre Numérique Passe-Bande
 
« Posté par Franck26 : Communication par infrarouge,
16 modules émetteurs,
Chaque émetteur émet sur une fréquence différente,
Les émetteurs ne sont pas synchronisé,
1 récepteur.
Donc mon récepteur va recevoir les 16 fréquence porteuse en même temps. Et c'est là que je souhaité utiliser un filtrage numérique pour séparer les data des 16 émetteurs. »
Je n'ai presque pas d'expérience en IR mais en filtres numérique assez bien. Je voudrais d'abord comprendre comment vous comptez vous y prendre pour avoir 16 fréquences différentes et stables dans l'IR et comment vous allez discriminer 16 canaux IR différents dans un seul récepteur.
« Posté par Franck26 : Pour la fréquence du signal a transmettre ce serait de l'ordre de 2kHz. »
Donc en appliquant Nyquist (et Shannon) votre fréquence d'échantillonnage devrait être de 4 KHz pour chaque canal. Et comme disait Pazcal, il serait plu simple d'utiliser 16 récepteurs (mais je ne vois pas comment les différentier dans l'IR), les décoder et ensuite c'est un petit multiplexage dans un micro.
« Posté par Franck26 : Un portable recois bien les ondes radio de plusieur emetteur a la fois, donc comment il fait pour filtrer juste ce qui lui est destiné? »
Chaque portable est connecté à une station relais qui se voit assigner une fréquence en émission et une autre en réception. Il a droit à 1/8e du temps de transmission, le reste étant attribué aux autres portables au même endroit. La parole est échantillonnée au niveau du portable, encryptée et mélangée avec les signaux de signalisation. Les signaux de 8 portables sont multiplexés dans la première station relais et véhiculés soit par faisceau hertzien, soit par fibre optique, dans le réseau du prestataire de service. Plus loin il y a éventuellement commutation vers un autre réseau téléphonique ou mobile. Dans les signaux de signalisation il y a notamment une mesure de la puissance reçue ce quipermet au fournisseur d'adapter la puissance d'émission aussi bien du portable que du relais, afin de diminuer les risques de perturbation car les mêmes fréquences sont utilisées de distance en distance (le nombre de canaux GSM sont limités, et il y a même des canaux qui sont réservés notamment aux chemins de fer).
« Posté par Franck26 : Est ce que les émetteurs qui sont proches les un des autres éméttent sur des fréquences différentes? »
Dans le système GSM, oui. Et même chaque portable (et donc chaque relais mais en couple opposé) émet sur une fréquence et reçoit sur une autre, sinon on ne peut pas faire du full duplex.

Pour en revenir aux filtres numériques, je ne vois pas bien leur utilité ici. Ils fonctionnent sur le principe de la fonction de transfert d'un signal échantillonné (transformée en Z - revoir aussi Fourier) tout comme les filtres analogiques ont une fonction de transfert de type Laplace. Les deux sortes de filtres ont des fonctions de transfert exprimées par des équations polynomiales dont l'ordre est une notion identique dans les deux cas. Dans les filtres numériques, il y a des filtres à réponse impulsionelle finie (sans fonction polynomiale de feed-back) dont la sortie n'est fonction que de l'entrée, et il y a des filtres à réponse impulsionelle infinie dont la réponse comporte une fonction de feedback et qui peut être infiniment longue. On trouve dans le deuxième cas l'équivalent des fonctions de type Bessel, elliptique, Butterworth, Chebichev, etc.

Ah, cela me rajeunit de 35 ans - du filtrage numérique en TTL.

pazcal 29/08/2007 00h11

Re : Filtre Numérique Passe-Bande
 
Oui, ca existe, des softs tout faits c'est cher..; mais on en trouve en freeware...
Le problème, c'est que tu devrais définir précisément tes besoins... D'autre part, je ne crois pas que ce soit la meilleur solution... Un FPGA serait sans doute plus efficace... Pour centraliser et synchroniser les données avant de les envoyer... Il suffit d'ajouter un identifiant de la source dnas chaque trame, et d'émettre... avec de soctets de bourrage lorsqu'il n'y a pas d'emission...
A plus

Franck26 29/08/2007 01h39

Re : Filtre Numérique Passe-Bande
 
Merci ON5MJ pour cette éclaircissement sur le systéme GSM.

« Posté par ON5MJ : Je voudrais d'abord comprendre comment vous comptez vous y prendre pour avoir 16 fréquences différentes et stables dans l'IR »

Génerer 16 fréquences différentes en IR peu se faire simplement avec un micro. Dans mon cas 16 micro. la stablité devrait être celle du quartz. Je ne vois pas trop ou est le probléme pour celà. Vous parlez peut-être de l'étalement de spectre qui se produirait si j'utilise un signal carré?

« Posté par ON5MJ : comment vous allez discriminer 16 canaux IR différents dans un seul récepteur. »

Mon idée était d'avoir 16 fréquences différente pour les 16 émetteur, donc en sortie du récepteur IR je me trouve avec ces 16 fréquences "mélangées" et je pensé uiliser 16 filtres numérique passe-bande suffisament éroits pour dissocier ces fréquences (ce qui semble être difficile).

« Posté par Franck26 : Pour la fréquence du signal a transmettre ce serait de l'ordre de 2kHz. »

Ici le signal a transmettre est en faite la donnée, mais la porteuse est une des 16 fréquences comprise entre 10kHz et 100kHz. J'ai donc, pour ma plus haute fréquence, une porteuse a 100kHz modulé a 2kHz. Dans ce cas, d'aprés Shannon il me faut donc un échantillonnage à (100k + 2k) * 2 = 204kHz au minimum.

« Posté par ON5MJ : il serait plu simple d'utiliser 16 récepteurs (mais je ne vois pas comment les différentier dans l'IR), les décoder et ensuite c'est un petit multiplexage dans un micro. »

Je pense que le fais d'utiliser 16 résepteur ne changerais rien car dans tous les cas chaque récepteur recevra les 16 fréquences => tous les émetteurs émettent en même temps. Le multiplexage nepeut être fait que au niveau des émetteur, mais malheureusement pour cela il faudrait qu'il soient synchronisé ce qui n'ai pas le cas.

« Posté par pazcal : Il suffit d'ajouter un identifiant de la source dnas chaque trame, et d'émettre... avec de soctets de bourrage lorsqu'il n'y a pas d'emission. »

OK, mais pour cela il faut que mes emetteurs soit synchronisé, non? Ou au moins que chaque emetteur puisse savoir si les autres émettent.
Mon idée était d'avoir des émetteurs qui envoie toujours quelque chose, au moins leur identifaint.

Je me rends bien compte de la difficulté de réalisation de ce systéme, mais je voulais comprendre ou sont les limites.
D'aprés toi (pazcal) ce serait donc la charge du micro impliqué par le filtrage.
Il faudrais donc peutêtre que j'éloigne mes canaux les un des autres de facon a utiliser des filtres moins sélectif. Mais celà impliquerais d'augmenter la féquence d'échantillonnage et donc d'augmenter la charge de calcul... => Je tourne en rond...

Merci pour vos réponses,
A+.

Delphy113 29/08/2007 09h18

Re : Filtre Numérique Passe-Bande
 
En fait je pensais que tu ne voulais garder qu'un seul canal à la fois sur les 16. Pour récupérer les 16 canaux à la fois il faut 16 fois plus de puissance de calcul. Mais filtrer un canal en numérique sur un pic je pense que c'est faisable (il est bien possible de faire une fft avec un PIC). Un filtre du premier ordre est quand même peu gourmand...

pazcal 29/08/2007 09h50

Re : Filtre Numérique Passe-Bande
 
En fait l'idée à laquelle je pensais, c'était de rassembler toutes les sources IR (dans un FPGA par ex), et de reconstituer une seule trame. Ensuite il suffit d'intercaler des fifos pour l'adaptation de débit. Le principe consistant à se caler sur le débit le plus élevé, et de mettre des bits de bourrage pour les sources plus lentes.Mais une fois de plus comme on ne connait pas le cointour précise de l'étude, c'est difficile de trouver des solutions....

Après, pour la partie traitement numérique, c'est pareil, on ne connait pas la longueur des trames. S'agit il d'une émission en continu, est ce que tu fonctionnes comme en rs232 avec une resynchronisation à chaque octet, quelle est la longueur des trames...?

Maintenant passons aux problèmes de ta solutions à filtres :
Si tu veux limiter chaque canal à 2kHz, cela suppose un débit d'environ 2kb/s (avec des modulations simples). donc tu devras passer ton train binaire dans un filtre passe bas particulier. Une fois que tu es sur que ton signal modulé ne dépasse pas 2kHz, tu le transpose à sa fréqunece de canal propre. Et tu répètes toute l'opération pour les 16 canaux.
Côté réception, tu vas recevoir simulatnément les 16 canaux, donc ceci suppose de faire pour chaque canal, et pendant la durée de la période d'échantillonnage les opérations suivantes :
Filtrer le canal avec un filtre un peu plus velu qu'un prermier ordre
Transposer le canal en bande de base (le ramener autour de 0)
Appliquer l'algo de démodulation pour récupérer les données
Reconstruire l'horloge des données avec une PLL par exemple (Ben oui, si tu as 6 bits à la même valeur il faut en lire 6, et pas 5, ou 7, il faut donc une horloge bitrate
lire le bit et reconstruire enfin la trame de données.
Cela pour chaque canal.
Après, si tu es rompu aux problèmes de traitement du signal, tu peux utiliser une méthode super sioux, mais un peu balaise, qui consiste à utiliser un filtrage multicadence. Dans ton cas cela s'appliquera bien. Si tu échantillonnes à 64kHz et que chaque bande ne fait que 2kHz, tu fais une transpo(plus filtrage) autour de 0 pour chaque bande. Ca c'est simple, un filtre une multiplication par une exponentielle complexe(Un sin et un cos). ensuite tu te ramènes à un signal sur échantillonné 16 fois, donc tu peux traiter que un échantillon sur 16, ce qui te ramène à une fréquence d'échantillonnage de 4kHz au lieu de 64. Et cela pour chaque canal. Au final, tu auras un filtre, plus 16 transpo, et un banc de 16 filtres échantillonné chacun à 4kHz (équivalent à un filtre unique échantillonné à 64kHz). Le gain est énorme. L'algo un peu coplexe, et un DSP obligatoire, sans pour autant être une bête de course, < 100MIPS. J'ai fait cela sur 8 bandes avec une modulation qpsk, ca tenait largement sur un DSP de 33MIPS.
Bon courage ;o)
A plus

Delphy113 29/08/2007 10h06

Re : Filtre Numérique Passe-Bande
 
Sinon au départ il a seulement voulu faire un filtrage numérique. Il a pas parlé de réaliser la chaine de traitement complète avec le pic...
Bien sur il faudrait en savoir plus sur le projet pour évaluer correctement...

pazcal 29/08/2007 12h24

Re : Filtre Numérique Passe-Bande
 
Erf, oui, sauf que le filtrage seul n'apporte rien ;o)
A plus

ben88 29/08/2007 13h26

Re : Filtre Numérique Passe-Bande
 
Salut, la methode "super sioux" decrite par pazcal a l'air vraiment super par rapport a ton problem, en plus le traitement est parfaitement adapter pour un DSP...perso si j'avais se projet je me lancerais dans cette direction...

A+

pazcal 29/08/2007 15h26

Re : Filtre Numérique Passe-Bande
 
J'ai oublié de dire que l'autre gros avantage du filtrage multicadence, c'est que étant donné que tu as transposé ton signal autour de 0, cela te ramène à un filtre passe-bas, au lieu d'an passe bande, donc un ordre deux fois supérieur pour le même nombre de coefficients... Par contre, il faut bien une transposition "complexe" multiplication par une exponentielle complexe, et on pas un simple sinus... Cela revient presque au même, on multiplie par un sin, et un cos, et on ajoute les deux... Mais bon, sans un minimum de bases du traitement de signal, ca risque de vite devenir un truc insurmontable.
donc la solution à FPGA n'est pas forcément à mettre aux oubliettes.
a plus

Franck26 29/08/2007 20h37

Re : Filtre Numérique Passe-Bande
 
Hello,
Pazcal, ton sioux il a fait math sup non? Ta méthode me semble terrible, je vais me pancher dessus un peu plus, parce qu'a la premiére lecture je vois l'idée mais pas la solution...
Tu aurais un lien internet ou la méthode serais expliqué plus en profondeur?

Sinon, pour donner plus de détail sur le projet (qui est purement théorique pour le moment), l'idée c'est que dans une piéce il y a plusieur module qui émettent des data quand ils en ont "envie", ces moduls ne sont pas relié et ne font que émettre.
Aprés, il y a un module récepteur (ou plusieur, cela ne change rien), qui doit être capable de recevoir ces data.
Donc le récepteur peut recevoir les data de plusieur emetteur en même temps.

Pour la solution FPGA je crois que ca va demander une grosse bête: je n'avais pas réalisé qu'il fallait des calcul a virgule pour les coéf du filtre...
Merci pour les info, A+.

pazcal 29/08/2007 22h15

Re : Filtre Numérique Passe-Bande
 
Pour la solution à FPGA, je pensais plutot à la version avec fifo, mais pas du tout à la possibilité de remplacer le DSP par le FPGA, ça ne serait pas raisonnable. Pour les coefficients des filtres, il faut travailler en fractionnaire (quasimentidem aux entiers), donc un DSP virgule fixe suffit amplement. Pour la théorie du multicadence, il y a un excellent bouquin de Bellanger qui explique la théorie.
http://www.dunod.com/pages/ouvrages...ge.asp?id=50162
Sinon, tu peux googler "filtre multicadence", et "réseau polyphasés"...
A plus

Franck26 30/08/2007 12h48

Re : Filtre Numérique Passe-Bande
 
Super, merci pour le livre.
Tu l'a déjà eu entre les mains? Il est facilement comprehenssible pour un presque débutant? En gros j'ai eu les cours téhorique sur le filtrage numérique (il y a un petit bout de temps), la transformé de Fourier, les RII et RIF ne me sont pas inconnu, mais sa reste assez flou pour moi. Tu penses que je devrais comprendre?
Sinon pour le projet en lui même je vais le laisser en standby (trop de choses qui m'échappent), je pense que je vais dabord m'instruire un peu sur le filtrage num et j'y reviendrais dessus plus tard.
Merci encore et A+.

pazcal 30/08/2007 14h56

Re : Filtre Numérique Passe-Bande
 
Le livre de Bellanger est excellent, une référence, par contre, il faut avouer que c'est un peu velu tout de même. Bonne maîtrise des maths du signal obligatoire :
convolution, les transformées non conformes, les espaces de hilbert, schwartz, les signaux à temps discret, etc etc... Après, le reste, c'est du velour ;o)
A plus


Fuseau horaire GMT +1. Il est actuellement 13h29.