Fréquences

kobeymane Messages postés 58 Date d'inscription dimanche 29 janvier 2012 Statut Membre Dernière intervention 29 avril 2012 - 21 avril 2012 à 01:55
kobeymane Messages postés 58 Date d'inscription dimanche 29 janvier 2012 Statut Membre Dernière intervention 29 avril 2012 - 22 avril 2012 à 01:05
Salut,

dans un programme de traitment de signal je définie la periode d'un signal en 0.000001 (s) je stock cette valeur dans une variable T0 (donc la frequence est de 0.1 MHz) je calcul les valeurs du signal en fonction du temps t et du coup j'ai deux tableaux l'un pour les abcisses ( temps ) et l'autre les images du signal s(t). ce signal est à l'entrée d'un filtre passe bas qui a une frequence de coupure fc. le problème que j'ai est lorsque j'essaye de donner cette frequence de coupure de l'ordre d'un MHz et je la stock dans un tableau (puisque f = 1 / t et t varie de 1 à 1200) pendant l'execution pas a pas je remarque que t tend vers 0 et du coup f est infinie (f n'est pas la frequence de coupure mais celle de la fonction de transfert de filtre) signal s(t) donc pas de filtage. j'éspere que vous avez compris le problème. aidez moi svp

9 réponses

Utilisateur anonyme
21 avril 2012 à 04:10
Bonjour

j'éspere que vous avez compris le problème.

Pantoute (Pas du tout)

Si j'ai bien deviné, tu as essayé de transformer un ordinateur en oscilloscope et ça ne marche. Si tu as une valeur qui tend vers la mauvaise chose (encore qu'il faudrait savoir c'est quoi la bonne chose); c'est qu'il doit y avoir une erreur à quelque part. Sans le code, qui devrait être inclus en partie, pour respecter les usages du lieu; on ne peut que spéculer:

Transtypage automatique de VB qui se passe mal.

Variable de type Integer qui devrait être de type long.

Mélange d'entiers et de nombres à virgule flottante suivi encore une fois d'un transtypage automatique qui se passe mal.

Division d'un très grand nombre par un très petit nombre

Une fonction Val() qui plante.

Un mauvais séparateur décimal à la mauvaise place

etc...
0
ucfoutu Messages postés 18038 Date d'inscription lundi 7 décembre 2009 Statut Modérateur Dernière intervention 11 avril 2018 211
21 avril 2012 à 08:40
Bonjour,
tu peux déjà expliquer ton calcul ?
je définie la periode d'un signal en 0.000001 (s) je stock cette valeur dans une variable T0 (donc la frequence est de 0.1 MHz)
1/0.000001 1000000>> 1Mhz
________________________
Réponse exacte ? => "REPONSE ACCEPTEE" pour faciliter les recherches.
Pas d'aide en ligne installée ? => ne comptez pas sur moi pour simplement vous dire ce qu'elle contient. Je n'interviendrai qu'en cas de nécessité de développ
0
ucfoutu Messages postés 18038 Date d'inscription lundi 7 décembre 2009 Statut Modérateur Dernière intervention 11 avril 2018 211
21 avril 2012 à 10:54
A noter (latences obligent, notamment celles de l'affichage) que :
sur ma machine qui tourne à 3.10 ghz,
cette simple boucle, sur 1 million
For i = 1 To 1000000
  Label1.Caption = i * 0.3
Next

demande 2,7 secondes, si affichage dans un label
et si l'on ne fait AUCUNE opération, juste Label1.caption i>> 2,5 secondes

Dur dur (impossible) , alors, de visualiser en temps réel ce qui se passe avec une période de 0.000001 secondes...
________________________
Réponse exacte ? => "REPONSE ACCEPTEE" pour faciliter les recherches.
Pas d'aide en ligne installée ? => ne comptez pas sur moi pour simplement vous dire ce qu'elle contient. Je n'interviendrai qu'en cas de nécessité de développ
0
NHenry Messages postés 15112 Date d'inscription vendredi 14 mars 2003 Statut Modérateur Dernière intervention 13 avril 2024 159
21 avril 2012 à 15:32
Bonjour,

0.000001 (s) -> 1 microseconde (µs), plutôt, ce sera plus lisible.

---------------------------------------------------------------------
[list=ordered][*]Pour poser correctement une question et optimiser vos chances d'obtenir des réponses, pensez à lire le règlement CS, celui-ci pour bien poser votre question ou encore celui-ci pour les PFE et autres exercices[*]Quand vous postez un code, merci d'utiliser la coloration syntaxique (3ième icône en partant de la droite : )
[*]En VB.NET pensez à activer Option Explicit et Option Strict (propriété du projet) et à retirer l'import automatique de l'espace de nom Microsoft.VisualVasic (onglet Références dans les propriétés du projet).
[*]Si votre problème est résolu (et uniquement si c'est le cas), pensez à mettre "Réponse acceptée" sur le ou les messages qui vous ont aidés./list
---
Mon site
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
ucfoutu Messages postés 18038 Date d'inscription lundi 7 décembre 2009 Statut Modérateur Dernière intervention 11 avril 2018 211
21 avril 2012 à 16:12
cela fait toujours 1 millionième de seconde
et impossible de visualiser en réel un million d'opérations par seconde, même avec un processeur à 3,1 Ghz.
Le processeur a beau être, lui, rapide, d'autres latences sont bel et bien présentes.


________________________
Réponse exacte ? => "REPONSE ACCEPTEE" pour faciliter les recherches.
Pas d'aide en ligne installée ? => ne comptez pas sur moi pour simplement vous dire ce qu'elle contient. Je n'interviendrai qu'en cas de nécessité de développ
0
ucfoutu Messages postés 18038 Date d'inscription lundi 7 décembre 2009 Statut Modérateur Dernière intervention 11 avril 2018 211
21 avril 2012 à 16:32
Pour mémoire :
la période de latence est :
le délai entre une action et le déclenchement d'une réaction, à savoir un retardement
.


________________________
Réponse exacte ? => "REPONSE ACCEPTEE" pour faciliter les recherches.
Pas d'aide en ligne installée ? => ne comptez pas sur moi pour simplement vous dire ce qu'elle contient. Je n'interviendrai qu'en cas de nécessité de développ
0
kobeymane Messages postés 58 Date d'inscription dimanche 29 janvier 2012 Statut Membre Dernière intervention 29 avril 2012
21 avril 2012 à 19:20
Bonjour,
j'ai remarqué que cela est impossible moi aussi.
J'explique pour ceux qui n'ont pas compris:

dans mon application qui permet de saisir un signal puis tracer sa courbe en domaine temps et fréquence à l'entrée et sortie d'un filtre, je me suis bloqué sur cette partie du traçage et fréquence. bien que la fréquence des signaux à tracer varie de 1 Hz à 1 MHz, on peut limiter l'intervalle comme suit:

Je demande à l'utilisateur de saisir cela:
La période T en µs (µs< T < 1S)
puis je fais F = 1 / T.

Le nombre de période à visualiser NP (NP < 10).

Puis au lieu de [1 µs; 1 s] j'aurais comme intervalle [0 , NP*T] pour le domaine temps et pour le domaine fréquence ça sera l'inverse et beaucoup plus limité que le premier. Cela est mieux n'est ce pas ?

Maintenant je cherche le nombre de points correspondants à une période. j'ai remarqué la chose suivante:

400 pixels ---------> T = 10 (µs)
donc x ---------> T' (µs)

T' est saisi par l'utilisateur

donc x 400 * T' µs / 10 µs 40 * T'

cet x est le nombre de points correspondant à une période T'. donc pour visualiser le nombre de périodes désiré on fait x = x * NP

donc j'ai fait ça pour la partie calcul:
x = 40 * T0 * NP
        For t = 1 To x

            For k = 1 To ord
                n = 2 * k - 1
                sc(t) += ((4 * amp) / (n * Math.PI)) * Math.Cos((n * 2 * Math.PI / T0) * t - (Math.PI / 2))
            Next k
            sc(t) = moy + sc(t)
        Next t


ord et amp T0 sont les paramètres du signal saisis par l'utilisateur.

ça ne marche pas encore.
j'utilise l'execution pas a pas et je remarque que la boucle n'est pas exécutée: il calcule juste (x = 401) et saute tout et du coup j'ai pas de graphe ni rien. je ne sais pas la cause de ce saut.
0
kobeymane Messages postés 58 Date d'inscription dimanche 29 janvier 2012 Statut Membre Dernière intervention 29 avril 2012
21 avril 2012 à 19:32
est ce que je peux utiliser le controle chart pour résoudre ce problème? est ce que c'est pratique ?
0
kobeymane Messages postés 58 Date d'inscription dimanche 29 janvier 2012 Statut Membre Dernière intervention 29 avril 2012
22 avril 2012 à 01:05
il la saute car x << 1.

y a t il pas moyen de travailler avec controle chart avec des courbes et pas de colonne ?
0
Rejoignez-nous