Estou tentando fazer a janela Hanning manualmente, mas não “t funciona, o que estou fazendo de errado?

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

insira a descrição da imagem aqui

Não sei por que não consigo obter a janela de hanning completa.

Comentários

  • Fiz isso w=hann(100); e funciona bem, mas preciso fazê-lo manualmente

Resposta

Você precisa mudar ” 102 “para” 10 “.

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

Comentários

  • Obrigado :), achei que fosse o número de amostras
  • @ Pulse9 Você deseja que a janela comece em 0 e termine em 0, então isso significa que o cos deve começar e terminar em 1, ou seja, deve passar por exatamente um ciclo.

Resposta

Havia um meteorologista (e janela Hann- fabricante ) chamado

Julius von Hann , Hanning é um abuso (semelhança com Hamming). Você teria um melhor controle de seu código chamando as funções hann.m ou 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 implementá-lo manualmente não envolva calcular cosseno com série.

Comentários

  • Por que chamar o build em funções ser melhor? Eles funcionam internamente exatamente da mesma forma que o método manual e têm mais camadas de verificação e análise, o que os torna um pouco mais lentos. As funções incorporadas usam especificamente " w = 0,5 – 0,5 * cos (2 * pi * x); "
  • @Hilmar eu escrevi " melhor controle de código ", porque a função que está sendo implementada (uma janela) é explícita da chamada, mesmo sem comentários. Outra pessoa, ou o programador três meses depois, entenderá facilmente o que ele faz, e pode mudar, melhorar imediatamente, sem precisar adivinhar. Além disso, colocar o comprimento (nSample) ou o nome da janela como variáveis melhora a legibilidade.

Deixe uma resposta

O seu endereço de email não será publicado. Campos obrigatórios marcados com *