Jeg prøver å gjøre Hanning-vinduet manuelt, men gjorde ikke «t fungerer, hva gjør jeg galt?

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

skriv inn bildebeskrivelse her

Ikke sikker på hvorfor jeg ikke kan få tak i hele hanningsvinduet ..

Kommentarer

  • Jeg gjorde dette w=hann(100); og fungerer bra, men jeg trenger det, gjør det manuelt

Svar

Du må endre » 102 «til» 10 «.

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

Kommentarer

  • Takk :), jeg skjønt det var antall prøver
  • @ Pulse9 Du vil at vinduet skal starte ved 0 og slutte ved 0, så det betyr at cos må starte og slutte med 1- dvs. det må gå gjennom nøyaktig en syklus.

Svar

Det var en meteorolog (og Hann-vinduet- maker ) kalt

Julius von Hann , Hanning er et misbruk (likhet med Hamming). Du vil ha bedre kontroll over koden din ved å ringe hann.m eller window.m -funksjonene:

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) 

Jeg håper at implementering av det manuelt ikke involverer databehandling av cosinus med serier.

Kommentarer

  • Hvorfor kaller build i funksjoner være noe bedre? De fungerer internt nøyaktig det samme som den manuelle metoden og har flere lag med kontroll og parsing som gjør dem litt tregere. Innbyggingsfunksjonene bruker spesifikt " w = 0.5 – 0.5 * cos (2 * pi * x); "
  • @Hilmar Jeg skrev " bedre kodekontroll ", fordi funksjonen som implementeres (et vindu) er eksplisitt fra samtalen, til og med uten kommentarer. Noen andre, eller programmereren tre måneder senere, vil lett forstå hva den gjør, og kan endre det, forbedre det med en gang, uten å måtte gjette. I tillegg forbedrer du lesbarheten ved å sette lengden (nSample) eller vindusnavnet som variabler.

Legg igjen en kommentar

Din e-postadresse vil ikke bli publisert. Obligatoriske felt er merket med *