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); 

entrez la description de limage ici

Je ne sais pas pourquoi je ne peux pas obtenir la fenêtre de suspension complète.

Commentaires

  • Jai fait ceci w=hann(100); et fonctionne bien, mais jen ai besoin, faites-le manuellement

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é.

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *