home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
DP Tool Club 12
/
CD_ASCQ_12_0294.iso
/
news
/
2376
/
radiosim
/
example.pro
< prev
next >
Wrap
Text File
|
1994-01-21
|
3KB
|
79 lines
' Exemple d'écriture d'un module (procédure BASIC)
' ------------------------------------------------
' En BASIC, les commentaires sont précédées par un '
SUB ModuleGaussFilter () ' les modules RADIOSIM sont des procédures BASIC
' sans argument
DEFINT I-K, N
DEFDBL A-H, L-M, O-Y
DEFSTR Z
' -------------------------- Début de la partie interactive----------------
'
' voir explications dans le manuel, section 6.1, et aussi 6.3.29 et 6.3.22
'
B = VAL(Z(1))
Noise$ = Z(2)
SELECT CASE Key$
CASE "BEGIN"
ModuleName$ = "Filtre gaussien" ' nom en clair qui apparaît à l'écran
' n°2 et dans le fichier .CAN
NbParam = 2
Z(1) = "Bande passante HF à 3 dB │ 10│10│CH+0│UF"
Z(2) = "Filtre inclus dans la bande de bruit (o/n) │ N│ 1│OONN│ "
EXIT SUB
CASE "EXCEPT"
' on place ici les interdictions de saisie spécifiques du module,
' celui-ci n'en a pas.
' si on inscrivait IF B>10 THEN Ok$= "N", on interdirait l'entrée
' d'une bande supérieure à 10 MHz
EXIT SUB
CASE "HELP"
Center "Filtre gaussien" ' procédure Center: voir manuel, section 6.3.6
Pn "Fonction de transfert en EXP(- g F^2)"
Pn "La réponse impulsionnelle est aussi gaussienne, en EXP(-(πt)^2/g)"
' procédure Pn: voir manuel, section 6.3.33
EXIT SUB
END SELECT
' -------------------------- Fin de la partie interactive ------------------
PRINT "Filtre gaussien"
IF Noise$ <> "N" THEN NBw 0, 0, 0, "O" ' ouverture du fichier NBW
' par la procédure Nbw, manuel 6.3.27
IF Domain$ = "T" THEN Fft A(), B() ' passage dans le domaine des fréquences
PRINT "Bande passante HF à 3 dB = ";
PRINT USING "#####.###"; B;
PRINT " "; Uf$
B = B * Uf / 2 ' B = bande à 3dB en bande de base
G = LOG(2) / 2 / B / B
NBw 0, 1, 0, ""
FOR I = 1 TO N / 2 - 1
F = I * dF
A = EXP(-G * F * F)
A(I) = A(I) * A
B(I) = B(I) * A
A(N - I) = A(N - I) * A
B(N - I) = B(N - I) * A
NBw I, A, 0, "" ' prise en compte du filtre dans le calcul
NBw N - I, A, 0, "" ' de la bande équivalente de bruit, et
' inscription dans les tableaux Pre et Pim
NEXT I
A(N / 2) = 0 ' par principe, on annule le signal à N/2. C'est sans effet si
' N et Ns sont convenablement dimensionnés (pas de recouvrement
' de spectre)
B(N / 2) = 0
NBw N / 2, 0, 0, ""
IF Noise$ <> "N" THEN NBw 0, 0, 0, "C" ' fermeture du fichier NBW
END SUB