Jessaye de faire la fenêtre de Hanning manuellement mais je « Ça marche, quest-ce que je » fais mal?
t=[0:.1:10]; x=.5-.5*cos(2*pi*t/102); plot(x);
Je ne sais pas pourquoi je ne peux pas obtenir la fenêtre de suspension complète.
Commentaires
Réponse
Vous devez changer » 102 « à » 10 « .
x=.5-.5*cos(2*pi*t/10);
Commentaires
- Merci :), je pensais que cétait le nombre déchantillons
- @ Pulse9 Vous voulez que la fenêtre commence à 0 et se termine à 0, ce qui signifie que le cos doit commencer et se terminer à 1- cest-à-dire quil doit passer par exactement un cycle.
Réponse
Il y avait un météorologue (et Hann window- maker ) nommé
Julius von Hann , Hanning est un abus (similitude avec Hamming). Vous auriez un meilleur contrôle de votre code en appelant les fonctions hann.m
ou window.m
:
nSample = 101; t = linspace(0,10,nSample); % w = hann(nSample); w = window(@hann,nSample); % w = .5-.5*cos(2*pi*t/10); plot(t,w)
Jespère que limplémenter manuellement nimplique pas de calculer le cosinus avec des séries.
Commentaires
- Pourquoi appeler le build dans les fonctions être mieux? Ils fonctionnent en interne exactement comme la méthode manuelle et ont plus de couches de vérification et danalyse, ce qui les rend un peu plus lents. Les fonctions intégrées utilisent spécifiquement " w = 0,5 – 0,5 * cos (2 * pi * x); "
- @Hilmar Jai écrit " meilleur contrôle du code ", car la fonction implémentée (une fenêtre) est explicite à partir de lappel sans commentaire. Quelquun dautre, ou le programmeur trois mois plus tard, comprendra facilement ce quil fait, et pourra le changer, laméliorer tout de suite, sans avoir à deviner. De plus, mettre la longueur (
nSample
) ou le nom de la fenêtre en tant que variables améliore la lisibilité.
w=hann(100);
et fonctionne bien, mais jen ai besoin, faites-le manuellement