Snažím se dělat Hanningovo okno ručně, ale ne „Funguji, co dělám špatně?

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

zde zadejte popis obrázku

Nejsem si jistý, proč nemůžu získat celé okno Hanningu.

Komentáře

  • Udělal jsem to w=hann(100); a fungovat dobře, ale musím to udělat ručně

Odpovědět

Musíte to změnit “ 102 „až“ 10 „.

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

Komentáře

  • Díky :), i když to bylo počet vzorků
  • @ Pulse9 Chcete, aby okno začalo na 0 a skončilo na 0, to znamená, že cos musí začínat a končit na 1 – tj. musí projít přesně jedním cyklem.

Odpověď

Byl tam meteorolog (a Hann okno- výrobce ) s názvem

Julius von Hann , Hanning je zneužívání (podobnost s Hammingem). Měli byste lepší kontrolu nad svým kódem, který volá funkce hann.m nebo 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) 

Doufám, že jeho ruční implementace nezahrnuje výpočet kosinu se sériemi.

Komentáře

  • Proč by volání buildu být ve funkcích lepší? Fungují interně přesně stejně jako manuální metoda a mají více vrstev kontroly a analýzy, což je o něco pomaleji. Integrované funkce konkrétně používají " w = 0,5 – 0,5 * cos (2 * pi * x); "
  • @Hilmar Napsal jsem " lepší ovládání kódu ", protože implementovaná funkce (okno) je z volání explicitní, dokonce bez komentářů. Někdo jiný nebo programátor o tři měsíce později snadno pochopí, co dělá, a může to hned změnit, vylepšit, aniž by to musel hádat. Čitelnost zlepšuje také uvedení délky (nSample) nebo názvu okna jako proměnných.

Napsat komentář

Vaše e-mailová adresa nebude zveřejněna. Vyžadované informace jsou označeny *