NI Home
Cart Achats | Aide
Hello Events Academic NI Developer Zone Support Solutions Products & Services Contact NI MyNI
You are here: 
NI Home > NI Developer Zone > NI Discussion Forums


Répondre
Member
_trent_
Envois : 37
0 Compliments
Solution approuvée

Fonctionnement de AmpPhaseSpectrum

Bonjour,

 

J'ai besoin de tracer le spectre de phase d'un signal et j'utilise la fonction AmpPhaseSpectrum. Cependant, malgré l'aide de LabWindows je ne comprends pas à quoi le df correspond vu qu'il est considéré comme une sortie. De plus, à quoi correspond le NumberOfElements de cette fonction? Comme je passe un tableau(équivalent à un vecteur) de points en variable, il est stipulé que la longueur de ce tableau doit être au moins égale à NumberOfElements/2, pourquoi?

Ensuite, j'essaye de tracer grâce à la fonction PlotXY mon spectre de phase (x la phase, y l'amplitude). Quand je compile et exécute le tout et que je clique sur le bouton (de l'interface que j'ai créée) qui est censé me générer mon spectre de phase j'obtiens le message d'erreur suivant :

 

The program has cause a 'General Protection' fault at.... au niveau de la ligne où se trouve AmpPhaseSpectrum. 

 

Je ne comprends pas.

 

Merci d'avance,

 

_trent_

 

Active Participant
Eric.M
Envois : 504
0 Compliments

Re : Fonctionnement de AmpPhaseSpectrum

Bonjour _trent_,

 

Un peu de littérature sur les transformées discrètes pourront répondre notament à la question "pourquoi la moitié d'éléments en sortie".

 

Pour ce qui est de df, c'est le pas fréquentiel retourné par la fonction, c'est donc un paramètre, mais étant passé par référence (en mettant un & devant), le C nous permet d'atteindre son adresse en mémoire pour y écrire dedans, comme si c'était en réalité une sortie.

 

Comprendre et corriger ces points devrait faire disparaître les soucis de General Protection Fault.

 

Cdt,

Eric

 

 

Eric M. - Application Engineer Specialist
Certified LabVIEW Developer
National Instruments France


Journées techniques : du contrôle d'instruments aux bancs de test
Du 4 au 13 juin : Grenoble - Pari...

Member
_trent_
Envois : 37
0 Compliments

Re : Fonctionnement de AmpPhaseSpectrum

[ modifié ]

Ok merci, j'ai compris pour le NumberOfElements/2. Mais concernant le df, je dois faire quoi du coup? Je déclare un pointeur et je le mets dans la case df du recall fucntion panel? ou bien je ne met rien du tout? Parce que j'ai déclaré un double* df et je l'ai passé comme paramètre pour df mais ça ne me change pas l'erreur... :smileysad:

 

Ah et puis ce que je n'ai pas dit non plus c'est que j'ai modifié tout mes tableaux contenant les différents points des signaux que je manipule en leur donnant une longueur de 50. En même temps, j'ai mis 64 pour number of elements donc normalement, si j'ai bien compris, la longueur des tableaux ne devrait pas poser de problème, si? Et puis du coup j'obtiens l'erreur suivante : Array argument too small. Argument must contain at least 64 elements.

Du coup, je me place à NumberOfElements=32. Et ca me ramène à ma première erreur (Genral...) 

Active Participant
Eric.M
Envois : 504

Re : Fonctionnement de AmpPhaseSpectrum

Hello _trent_,

 

Il ne sert à rien de déclarer un pointeur : il suffit de passer l'adresse de la variable dans la fonction.

 

double pas_freq;

 

...

 

AmpPhaseSpectrum (data, POWER_2_10, ENABLE_OPTION, 1.0, specf, specp, &pas_freq);

 

Et c'est gagné ;-)

Si j'ai un peu de temps je ferai un exemple dans la journée.

 

A+

Eric

Eric M. - Application Engineer Specialist
Certified LabVIEW Developer
National Instruments France


Journées techniques : du contrôle d'instruments aux bancs de test
Du 4 au 13 juin : Grenoble - Pari...

Member
_trent_
Envois : 37
0 Compliments

Re : Fonctionnement de AmpPhaseSpectrum

Ouha merci :smileyhappy: !!

Je vais essayer ce qui m'est conseillé et si ça ne fonctionne pas je mettrai le bout de code. Mais t'embêtes pas à faire un exemple pour l'instant!! J'en demande pas autant !!

En tous cas, merci beaucoup!

Member
_trent_
Envois : 37
0 Compliments

Re : Fonctionnement de AmpPhaseSpectrum

Ca fonctionne!!! Reste plus qu'à exploiter tout ça.... :smileyhappy:

Je souhaite tracer sur un graphe le spectre de mon signal, d'ailleurs s'il y a quelque piste...

Ce que j'ai fais c'est une boucle qui me trace sur un graphe type XY chaque amplitude en fonction de chaque phase. Est-ce la bonne méthode? Y a-t-il plus court et plus simple?`

 

merci!

En consultant ce site, vous en acceptez les Conditions d'utilisation. Veuillez les lire attentivement avant d'accéder à une quelconque partie du site. Veuillez suivre ce lien pour en savoir plus sur la politique sur les droits d'auteur de ni.com.
Mon Profil | Confidentialité | Conditions d'utilisation | Contacter NI © 2011 National Instruments Corporation. All rights reserved.    |    Envoyer cette page Envoyer cette page