Estoy intentando hacer la ventana Hanning manualmente, pero no «No funciona, ¿qué estoy haciendo mal?

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

ingrese la descripción de la imagen aquí

No estoy seguro de por qué no puedo obtener la ventana de Hanning completa ..

Comentarios

  • Hice esto w=hann(100); y funciona bien, pero lo necesito hacerlo manualmente

Responder

Necesitas cambiar » 102 «a» 10 «.

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

Comentarios

  • Gracias :), pensé que era el número de muestras
  • @ Pulse9 Quiere que la ventana comience en 0 y termine en 0, por lo que eso significa que el cos debe comenzar y terminar en 1, es decir, debe pasar exactamente por un ciclo.

Responder

Había un meteorólogo (y Hann window- fabricante ) llamado

Julius von Hann , Hanning es un abuso (similitud con Hamming). Tendría un mejor control de su código llamando a las funciones 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) 

Espero que implementarlo manualmente no implique calcular el coseno con series.

Comentarios

  • ¿Por qué llamar al build en funciones ser mejor? Funcionan internamente exactamente igual que el método manual y tienen más capas de verificación y análisis, lo que los hace un poco más lentos. Las funciones integradas usan específicamente " w = 0.5 – 0.5 * cos (2 * pi * x); "
  • @Hilmar Escribí " un mejor control de código ", porque la función que se está implementando (una ventana) es explícita desde la llamada, incluso sin comentarios. Alguien más, o el programador tres meses después, entenderá fácilmente lo que hace y podrá cambiarlo, mejorarlo de inmediato, sin tener que adivinar. Además, poner la longitud (nSample) o el nombre de la ventana como variables mejora la legibilidad.

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *