Yritän tehdä Hanning-ikkunaa manuaalisesti, mutta ei ”Älä toimi, mitä teen väärin?

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

kirjoita kuvan kuvaus tähän

Etkö ole varma, miksi en voi hankkia koko hanning-ikkunaa ..

Kommentit

  • Tein tämän w=hann(100); ja toimivat hyvin, mutta tarvitsen sen tekemään se manuaalisesti

vastaus

Sinun täytyy muuttaa ” 102 ”-” 10 ”.

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

Kommentit

  • Kiitos :), vaikka olisin näytteiden lukumäärä
  • @ Pulse9 Haluat, että ikkuna alkaa 0: sta ja päättyy 0: een, joten se tarkoittaa, että cos: n on aloitettava ja lopetettava yhdellä – eli sen täytyy käydä läpi täsmälleen yksi jakso. li>

Vastaus

Oli meteorologi (ja Hann-ikkuna- valmistaja ) nimeltä

Julius von Hann , Hanning on väärinkäyttö (samankaltaisuus Hammingin kanssa). Voit hallita koodiasi paremmin kutsumalla hann.m – tai window.m -funktiot:

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) 

Toivon, että sen manuaalinen käyttöönotto ei edellytä kosinin laskemista sarjoilla.

Kommentit

  • Miksi koontiversiota kutsutaan toiminnoissa olla parempi? Ne toimivat sisäisesti täsmälleen samalla tavalla kuin manuaalinen menetelmä, ja niillä on enemmän tarkistuksen ja jäsentämisen kerroksia, mikä tekee niistä hieman hitaampia. Sisäänrakennustoiminnot käyttävät nimenomaisesti " w = 0,5 – 0,5 * cos (2 * pi * x); "
  • @Hilmar Kirjoitin " paremman koodinhallinnan ", koska toteutettava toiminto (ikkuna) on nimenomainen puhelusta, jopa ilman kommentteja. Joku muu tai ohjelmoija kolme kuukautta myöhemmin ymmärtää helposti, mitä se tekee, ja voi muuttaa sitä, parantaa sitä heti ilman arvauksia. Lisäksi pituuden (nSample) tai ikkunan nimen asettaminen muuttujiksi parantaa luettavuutta.

Vastaa

Sähköpostiosoitettasi ei julkaista. Pakolliset kentät on merkitty *