ハニングウィンドウを手動で実行しようとしましたが、実行しませんでした「うまくいきません。何が間違っていますか?

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

ここに画像の説明を入力してください

完全なハニングウィンドウを取得できない理由がわかりません。

コメント

  • これを行いましたw=hann(100);で問題なく動作しますが、手動で行う必要があります

回答

変更する必要があります ” 102 “から” 10 “。

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

コメント

  • ありがとう:)、そうだったけどサンプル数
  • @ Pulse9ウィンドウを0で開始し、0で終了するようにします。つまり、cosは1で開始および終了する必要があります。つまり、正確に1サイクルを通過する必要があります。

回答

気象学者がいました(そしてハンウィンドウ- maker )という名前の

ユリウスフォンハン、ハニングは虐待です(ハミングとの類似性)。 hann.mまたは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) 

手動で実装する場合、シリーズでコサインを計算する必要がないことを願っています。

コメント

  • ビルドを呼び出す理由関数でもっと良いですか?これらは内部的には手動の方法とまったく同じように機能し、チェックと解析のレイヤーが多いため、少し遅くなります。組み込み関数は、特に" w = 0.5-0.5 * cos(2 * pi * x); "
  • <を使用します。 li> @Hilmar実装されている関数(ウィンドウ)が呼び出しから明示的であるため、"より優れたコード制御"を作成しました。コメントを省く。他の誰か、または3か月後のプログラマーは、それが何をするのかを簡単に理解し、推測することなく、それを変更し、すぐに改善することができます。さらに、長さ(nSample)またはウィンドウ名を変数として指定すると、読みやすさが向上します。

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です