Radio DSP d'usage généralLes ordinateurs modernes ont la puissance de calcul nécessaire, pour permettre à des radios conventionnelles de recevoir des signaux avec un mauvais rapport S/N. Particulièrement lorsque le mauvais rapport S/N est dû à des interférences plutôt qu'au bruit blanc (galactique), l'ordinateur peut enlever les interférences à l'intérieur de la bande passante étroite du signal désiré, par l'usage de l'information sur la source de l' interférence récupérée par l'emploi de bandes passantes plus larges. Le traitement du signal peut être beaucoup plus astucieux que ce qu'il était possible de faire auparavant.. Chaque source d' interférence peut être traitée comme un signal, et la radio DSP peut recevoir ET SÉPARER simultanément un grand nombre de signaux. Le package radio DSP est en développement, avec la flexibilité et la généralité comme aspects importants. Cette page contient des liens vers des pages qui décrivent différents aspects du traitement de la radio numérique, dans l'ordre dans lequel ils sont rencontrés dans le processus de développement à venir. La radio-DSP pour LINUX est calculée pour toutes les méthodes de modulation à bande étroites, et pour toutes les gammes de fréquence. Pour débuter seront inclus les modes suivants.CW pour signaux faibles (principalement EME)
|
Combinaisons de HardwarePour une bande passante SSB, utilisant un récepteur SSB conventionnel et une antenne unique, un ordinateur 486 et n'importe quelle carte son conventionnelle peut convenir. Naturellement la bande passante limitée limite la performance, manifestement le mode FM ne fonctionnera pas du tout. Les routines de réjection d'interférences auront une information limitée sur les sources d'interférences, et leurs capacités seront réduites. Si le récepteur SSB possède un noise-blanker adéquat, et si le S/N du signal désiré est essentiellement déterminé par le bruit blanc, la performance du signal faible ne sera pas dégradée. Pendant la phase de développement j'utilise un TS520 comme radio SSB, avec un ordinateur équipé d'un Pentium 66MHz (16MB RAM) et d'une Soundblaster 16, pour tester les performances à la fois en HF et en VHF.Avec une bande passante de 40kHz et une antenne unique, un Pentium MMX et une carte son stéréo 16 bits standard donneront une performance raisonnable. Avec l'utilisation de 2 mélangeurs de fréquence en quadrature le signal RF est converti en une paire de signaux audio qui sont échantillonnés en stéréo à 44.1kHz. La gamme dynamique sera toutefois limitée à l'intérieur des 40 kHz de la bande-passante. C'est la solution idéale de faible coût pour un usage général sur toutes les bandes de fréquence. Pendant la phase de développement je ne vois pas la nécessité de tester cette configuration. Avec une bande passante de 2 x 20kHz et 2 antennes (par exemple une VHF X-yagi), un hardware analogique complexe est nécessaire si un convertisseur A/D 44.1kHz standard est utilisé. C'est la configuration que j'ai utilisée d'une manière extensive, avec la radio sur PC MS-DOS. Avec des filtres à quartz standards la bande passante est réduite à 2 x 15kHz, ainsi le hardware pour cette configuration est bien plus simple et facile à réaliser. Pour une information plus détaillée lire la description du hardware pour la radio PC MS-DOS. Pendant la phase de développement, cette configuration a été testée à 144MHz sur un Pentium MMX 200MHz (64MB) avec une Soundblaster 16. Avec une bande passante de 2 x 90kHz et 2 antennes, un convertisseur A/D à 4 canaux tournant à 96kHz et un Pentium III est nécessaire. Chaque antenne nécessite 2 mélangeurs en quadrature. Pendant la phase développement, cette configuration a été testée sur un Pentium III 650MHz (128MB) avec une carte son Digital River Delta44. La Delta44 est vendue comme une carte son 24 bits, mais lorsque l'on échantillonne à 96kHz, seulement les 16 premiers bits contiennent une information valide, les 8 bits de poids faible contiennent du bruit aléatoire.
Aspects pratique du traitement du signal.Les liens ci-dessous pointent vers des pages html, qui contiennent de nombreuses images montrant divers aspects intéressants du traitement du signal. Ces liens sont placés dans un ordre chronologique, et la version la plus récente du package contenant le soft est toujours au bas de la liste.Filtres
anti alias Vitesse et précision de l'approché des FFT réelles L'utilisateur peut sélectionner différentes implantations de fft à partir d'un menu. Certaines sont approximatives, et cette page montre quelques graphes qui illustrent les limitations de ces routines. Fading Sélectif. Comparaison
de spectres larges et étroits à 7MHz Forme du
filtre et réponse impulsionnelle Équilibrage des canaux pour récepteur à conversion directe Un récepteur à conversion directe utilise 2 mélangeurs avec un décalage de 90 degrés entre eux. Un circuit analogique réel doit employer des composants à 1% ,de façon à ce qu'un récepteur à conversion directe typique, ait une composante non désirée supprimée d'au moins 40dB. Pour éviter un accord très précis des circuits analogiques, le package Linux DSP a une correction digitale qui élimine cette composante. Cette section montre comment il travaille. Gamme
dynamique libre de parasites Calibration
pour réponse fréquentielle plate Calibration
de la bande-passante SSB Un
générateur d'impulsion pour calibration. Le graphe de la bande de base Lorsque ni l' AFC ni le second fft n'est autorisé, le flot de données venant du convertisseur A/D à l'intérieur d'une bande de fréquence sélectionnée, est mélangé vers la bande de base pour un traitement ultérieur. Ici on trouve des renseignements concernant le premier mélangeur, ainsi que quelques images intéressantes du 7MHz simultanément en haute et basse résolution . Chronogramme du premier FFT Le premier FFT est usuellement la routine la plus critique du point de vue timing. Il y a le choix entre plusieurs routines fft différentes, et la performance relative dépends probablement du type de processeur, du format du cache, et de bien d'autres paramètres du hardware. Ce lien donne l'information de timing couramment utilisable. Si vous avez un ordinateur différent Je fournirais gracieusement une information de chronométrie pour votre système !! La fonction de second ordre Au cas où le deuxième fft est autorisé, les transformées du premier fft sont divisées en deux parties, et retransformées à l'envers au double du nombre de fonctions temporelles. De cette façon, les signaux forts (inintéressants) sont séparés des signaux faibles (intéressants) et de toutes sortes de bruit à large bande. La disparition des signaux forts est très intéressante pour permettre la réduction des bruits impulsionnels. Ce lien donne un exemple à 7MHz où l'anti-parasite est bien plus difficile à réaliser qu'en VHF en raison du plus grand nombre de signaux forts. Noise-Blanker avec hardware optimisé Avec un hardware analogique optimisé la bande-passante plate est 90% de la bande-passante digitale ou plus. Une impulsion de bruit devient très courte ce qui est bon pour le noise-blanker. Noise-Blanker avec hardware conventionnel Avec une radio conventionnelle la bande-passante plate est typiquement 75% de la bande-passante digitale ou moins. Une impulsion de bruit crée un comportement oscillatoire, c'est une oscillation à la fréquence centrale du filtre avec une constante de temps qui est de 1/bande-passante. Les oscillations ne sont pas trop nuisibles car leur forme exacte est connue par le système. - c'est la fft inverse de la réponse fréquentielle du circuit du signal (combinaison analogique et digitale). Le graphe waterfall à haute résolution Lorsque une grande gamme de fréquences est traitée, il n'y a pas assez de pixels sur l'écran pour associer une fréquence fft binaire avec chaque pixel. Typiquement des bandes-passantes de l'ordre de 1Hz sont utilisées pour détecter des signaux CW faible avec une sensibilité optimale. Lorsque une X-yagi est utilisée, une corrélation de canaux est utilisée pour perdre moins de 3dB par rapport à une antenne unique avec polarisation optimale. Réglage du premier fft Lorsque le second fft est autorisé, l'usage du premier fft est seulement d'éliminer les forts signaux à bande étroite, qui pourrait détruire la performance du noise-blanker si ce n'était pas le cas. Il n'y a aucune raison de diminuer le temps de calcul de l'ordinateur pendant la première fft, car il y a de très gros signaux de très grande qualité à l'intérieur de la bande-passante. Quelques captures d'écran sont présentées pour illustrer ceci. Testons la gamme de l' A/D Pour une bonne gamme dynamique, il est essentiel d'utiliser tous les bits du convertisseur A/D. Il y a des outils pour vérifier que la saturation n'apparaît pas dans la circuiterie analogique précédant le convertisseur A/D. Ici sont quelques captures d'écran montrant les insuffisances de la carte Delta44 (rien n'est parfait!....) 2 minutes d'EME sur 144MHz La page montre les captures d'écran, et vous permet de télécharger un fichier binaire contenant les signaux à partir desquels les captures d'écran ont été obtenues. Les signaux ont été enregistrés le 03 Octobre 1999 à environ 0800 TU. Lancez les sur votre ordinateur et écoutez différentes stations EME. 1/2 minute de contest sur7MHz (canal unique) La page montre les captures d'écran, et vous permet de télécharger un fichier binaire contenant les signaux à partir desquels les captures d'écran ont été obtenues. Lancez les sur votre ordinateur et écoutez différentes stations en contest. 1/2 minute de contest 7MHz (2 canaux) La page montre les captures d'écran, et vous permet de télécharger un fichier binaire contenant les signaux à partir desquels les captures d'écran ont été obtenues. Si votre ordinateur était assez rapide pour un seul canal avec un peu de marge, lancez les sur votre ordinateur et écoutez différentes stations en contest. Installation du support SIMD sous RedHat 6.1 Pour utiliser les instructions SIMD vous devez avoir le kernel 2.4xx ou mieux - ou vous devez installer un patch. Si vous n'avez pas une grande expérience de Linux user, regardez ici. Installation de la radio dsp Linux sous RedHat 6.1 Si vous n'avez pas une grande expérience de Linux regardez ici. Si vous êtes un utilisateur expérimenté, SVP, essayez d'installer avec d'autres distributions de Linux (drivers définis dans sound.h). Envoyez un mail et dites moi ce que vous constatez. fft inverse comme mélangeur combiné et ré-échantillonneur L'utilisation de la transformée de Fourrier inverse comme mélangeur de fréquence est triviale, On décale les contenus binaires de la fréquence avant d'appliquer la transformée inverse. On peut facilement implémenter un filtre en même temps par simple mise è zéro des points non désirés. En utilisant un sous-ensemble de points correspondant à une transformée plus petite, ensuite en utilisant les données de la transformée plus petite, le nombre de points est réduit par une puissance de 2. La transformée inverse utilise le même temps de calcul en utilisant, une puissance de 2 fois moins de points. Bien que conceptuellement simple, cette méthode nécessite quelque attention pour éviter la production de signaux indésirables. Quelques captures d'écran montrent des bandes latérales parasites, fabriquées par les paramètres sélectionnés seulement pour la vitesse du processeur. La performance est aussi bonne en utilisant un travail de calcul plus modeste. Signaux indésirables et gamme dynamique En utilisant un PentiumIII et une Delta44, avec le hardware décrit dans les autres pages de ce site, 2 mélangeurs de fréquence en quadrature et Filtres anti-alias , avec un préamplificateur 7MHz on obtient un très bon récepteur. Quelques captures d'écran montrent la manière dont un signal faible peut être visualisé sur un écran de 90kHz de largeur. Un très gros signal à 7MHz est également présent. Bien qu'il y ait plusieurs signaux indésirables de diverses origines, ce n'est pas un problème de détecter un signal qui est à 130 dB en dessous du plus fort signal "indésirable". Le fft sous-jacent du graphe waterfall utilise 171072 points avec une fenêtre sinusoïdale rectangulaire. En étendant l'échelle de fréquence de 100 fois, la sensibilité peut être améliorée d'environ10dB. Le temps pour rechercher une gamme de fréquence large devient alors impraticable. Traitement de la SSB de bande-passante normale Ici il y a quelques graphes montrant quelques possibilités d'utilisation du package dsp linux, avec un Pentium 60MHz traitant la sortie audio d'un TS520. Le Pentium 60MHz est suffisamment rapide pour traiter un seul canal échantillonné à 8kHz. Les réglages pour un "filtrage normal" de bande-passante 25 to 250Hz avec un petit retard du signal, ainsi que pour très haute sensibilité/résolution sont montrés. Radio de très faible prix Utilisez juste 2 mélangeurs standards et un oscillateur X-tal , vous serez très surpris d'avoir un bon récepteur de radio. Aucun filtre anti-alias n'est nécessaire, ceux qui sont sur la carte son sont suffisants, si les demandes concernant la gamme dynamique restent modestes. Sans aucun amplificateur, la figure de bruit est acceptable, un gain de l'ordre de 60dB a été ajouté. La plus grande partie de ce gain est ajouté de préférence en basse fréquence. Utiliser ossmix pour le réglage de la carte A/D Les cartes sons ont pratiquement toutes un certain nombre d'interrupteurs contrôlés par software. Il n'y a aucune raison de les contrôler à partir de l'intérieur du package dsp, so /dev/mixer n'est plus utilisé. Régler les niveaux de signaux du domaine temps En raison de la grande flexibilité des cartes A/D, les format des fft, le réglage manuel des fonctions de fenêtrage, et le réglage des niveaux des signaux n'est nécessaire que dans le cas ou le second fft est en service. Ceci parce que le second fft utilise 16bits de données pour gagner en vitesse, en utilisant des instructions MMX. Des niveaux de signaux trop bas amènent du bruit de quantification, et des niveaux de signaux trop hauts peuvent amener de la saturation, causant des réponses parasites, et dégradant sérieusement la gamme dynamique. Le programme dsp a des outils pour régler les niveaux correctement. Régler les niveaux de signaux dans le domaine fréquentiel Dans le cas ou la version MMX est sélectionnée avec le second fft, il est nécessaire de placer un paramètre de niveau de signal pour éviter la saturation ou le bruit de quantification. Linéarité des cartes A/D Lorsque l'on convertit un signal radio en une BF à large bande, la linéarité est essentielle. Un signal indésirable qui vient à une faible fréquence audio produit des sur-tonalités qui tombent dans la bande-passante. La linéarité de la carte A/D elle-même, place les limites pour la gamme dynamique la plus élevée, libre de produits indésirables . La carte Delta 44 est d'environ 1 bit (6dB) meilleure qu'une carte 16 bits standard. Le gros avantage avec la Delta 44 est que les échantillons sont plus élevés, ce qui permet plus de bande-passante. Récepteur à conversion directe optimisé pour 144MHz Bien qu'il soit extrêmement facile, de réaliser une radio raisonnablement bonne avec juste 2 mélangeurs Schottky, il n'est pas si aisé de réaliser un récepteur à conversion directe qui préserve la gamme dynamique d'une carte son Delta44. Le problème est que l'oscillateur local a une bande latérale de bruit, et au cas ou une très bonne linéarité est désirée, il est nécessaire d'avoir plus de puissance au LO pour attaquer un mélangeur de haut niveau. En augmentant à la fois la porteuse LO et les bandes latérales du LO, on s'expose à ce que le bruit audio produit par le mélange du LO avec ses propres bandes latérales augmente quadratiquement. On obtient une meilleure performance avec des mélangeurs moins gourmands tels que SBL-1 or TUF-1. Distributions de Linux Le Développement du package dsp linux a été réalisé sous RedHat 6.1 et avec OSS installé. On trouvera ici une info pour tourner sous d'autres systèmes. Nouveau nom. Linux DSP radio s'appelle maintenant linrad AFC, suivre et verrouiller un signal Verrouiller un signal faible et instable n'est pas facile. On doit utiliser plusieurs transformations pour trouver comment la fréquence varie avec le temps. Pour garder un S/N suffisamment bon, les transformations doivent être intégrées, ce qui signifie que la fréquence est trouvée avec un retard appréciable. L'AFC peut présenter le signal retardé au haut-parleur, en utilisant la valeur optimale pour la fréquence, mais qui peut aussi être extrapolée en fonction du temps écoulé, et présenter le signal passé au travers d'un filtre centré sur la fréquence extrapolée la moins précise. AFC est très en avance; dans linrad il est présent dans un mode simple canal seulement - et seulement si le second fft est en service. Le lien montre comment le fichier UNKN422 de AF9Y est reçu avec plusieurs choix différents de temps d'intégrations et de formats de fft. La modulation du circuit EME 2 Écrans de capture montrent le signal de IK3MAC reçu via la Lune. L'AFC suit la variation de la fréquence d'environ 0.5Hz sur1 minute de transmission. La porteuse du signal a une bande-passante de 0.2Hz ou moins. Ces graphes montrent clairement que la CW cohérente est utilisable en 144MHz pour les communications EME. La phase de la porteuse peut être extraite d'un filtre dont la bande-passante est environ 100 fois plus étroite que la bande-passante nécessaire pour la modulation du code morse. Ce qui signifie que la phase de la porteuse sera connue précisément en dessous du niveau où un signal peut être copié par l'oreille, ce qui donne pour la CW cohérente une amélioration de S/N de 3dB. Un doppler élevé pour les météores Ici est une capture d'écran montrant un météore (ou également un satellite) avec un décalage doppler très élevé, qui change aussi rapidement que 1kHz par minute!! L'AFC s'accroche bien également sur des signaux très instables, aussi longtemps que le signal varie d'une manière continue, et ne fait pas de brusques sauts. Ce qui peut être intéressant pour les bandes micro-ondes. Paramètres AFC normaux Détails de l'AFC lorsqu'il est verrouillé sur le fichier UNKN422.WAV. Linrad avec un récepteur SSB normal L'échantillonnage d'un canal audio unique à 6kHz est suffisant pour traiter la sortie d'une radio SSB conventionnelle. Un Pentium 100MHz tournera à environ 33% d'occupation de la cpu . Linrad avec une bande-passante SSB et une antenne unique Ce lien montre les paramètres de réglage pour linrad, lorsque il tourne comme un ajout à un récepteur SSB conventionnel, pour améliorer la réception des signaux EME faibles et instables . Quelques choix différents pour la sortie audio sont ajoutés: Expanseur audio, stéréo pour 2 antennes, et stéréo artificielle dérivée du signal mono par une fréquence dépendant du décalage entre les deux oreilles. (équivalent à un petit temps de retard des signaux transmis à une oreille par rapport à l'autre.) Un signal EME extrêmement faible. Intégration Cohérente des signaux CW Ce lien montre un peu plus d'une heure de longue transmission à partir d'un émetteur très stable. Ce signal est beaucoup plus faible que celui qui peut être copié par l'oreille de n'importe quel opérateur de CW. Cet enregistrement montre, que l'intégration sur plusieurs répétitions d'un code morse répété, permettra EME à des puissances beaucoup plus faibles que celles qui étaient possibles en CW. Comme la porteuse peut être extraite par l'emploi d'une bande-passante d'environ 0.2Hz, il sera possible d'intégrer d'une façon cohérente, ce qui implique un temps raisonnablement court pour transmettre un message. Quelques
graphes qui illustrent comme l' AFC fonctionne. Regarder ici pour avoir
une idée sur le contrôle des paramètres
lir00-28.tgz (243kB)
archive tar packée avec gzip.
| |