Sto cercando di eseguire manualmente la finestra Hanning ma non lho fatto “T funziona, cosa sto facendo di sbagliato?

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

inserisci qui la descrizione dellimmagine

Non sono sicuro del motivo per cui non riesco a ottenere la finestra di consegna completa ..

Commenti

  • Ho fatto questo w=hann(100); e funziona bene, ma ho bisogno che lo faccia manualmente

Risposta

Devi cambiare ” 102 “a” 10 “.

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

Commenti

  • Grazie :), pensavo fosse il numero di campioni
  • @ Pulse9 Vuoi che la finestra inizi da 0 e finisca da 0, quindi significa che il cos deve iniziare e finire a 1, cioè deve passare esattamente un ciclo.

Risposta

Cera un meteorologo (e finestra di Hann- maker ) denominato

Julius von Hann , Hanning è un abuso (somiglianza con Hamming). Avresti un controllo migliore del tuo codice chiamando le funzioni hann.m o 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) 

Spero che limplementazione manuale non comporti il calcolo del coseno con serie.

Commenti

  • Perché chiamare il build in funzioni va meglio? Funzionano internamente esattamente come il metodo manuale e hanno più livelli di controllo e analisi che li rendono un po più lenti. Le funzioni integrate utilizzano specificamente " w = 0,5 – 0,5 * cos (2 * pi * x); "
  • @Hilmar Ho scritto " migliore controllo del codice ", perché la funzione da implementare (una finestra) è esplicita dalla chiamata, anche senza commenti. Qualcun altro, o il programmatore tre mesi dopo, capirà facilmente cosa fa e potrà cambiarlo, migliorarlo subito, senza dover indovinare. Inoltre, inserire la lunghezza (nSample) o il nome della finestra come variabili migliora la leggibilità.

Lascia un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *