Încerc să fac fereastra Hanning manual, dar nu „nu funcționează, ce fac greșit?

t=[0:.1:10]; x=.5-.5*cos(2*pi*t/102); plot(x); 

introduceți descrierea imaginii aici

Nu sunt sigur de ce nu pot obține fereastra completă de funcționare ..

Comentarii

  • Am făcut acest lucru w=hann(100); și funcționează bine, dar am nevoie să o fac manual

Răspunde

Trebuie să schimbi ” 102 „până la” 10 „.

x=.5-.5*cos(2*pi*t/10); 

Comentarii

  • Mulțumesc :), deși a fost numărul de eșantioane
  • @ Pulse9 Vrei ca fereastra să înceapă de la 0 și să se termine la 0, deci asta înseamnă că cosul trebuie să înceapă și să se termine la 1 – adică trebuie să parcurgă exact un ciclu.

Răspuns

A fost un meteorolog (și fereastra Hann- maker ) numit

Julius von Hann , Hanning este un abuz (similaritate cu Hamming). Ați avea un control mai bun al codului dvs. apelând funcțiile hann.m sau 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) 

Sper că implementarea sa manuală nu implică calcularea cosinusului cu seriile.

Comentarii

  • De ce ar fi apelarea compilării în funcții să fie mai bine? Funcționează intern exact la fel ca metoda manuală și au mai multe straturi de verificare și analiză, ceea ce le face puțin mai lente. Funcțiile de construire utilizează în mod specific " w = 0,5 – 0,5 * cos (2 * pi * x); "
  • @Hilmar Am scris " control mai bun al codului ", deoarece funcția implementată (o fereastră) este explicită din apel, chiar fara comentarii. Altcineva, sau programatorul trei luni mai târziu, va înțelege cu ușurință ce face și îl poate schimba, îmbunătăți imediat, fără a fi nevoie să ghicească. În plus, punerea lungimii (nSample) sau a numelui ferestrei ca variabile îmbunătățește lizibilitatea.

Lasă un răspuns

Adresa ta de email nu va fi publicată. Câmpurile obligatorii sunt marcate cu *