ハニングウィンドウを手動で実行しようとしましたが、実行しませんでした「うまくいきません。何が間違っていますか?
t=[0:.1:10]; x=.5-.5*cos(2*pi*t/102); plot(x);
完全なハニングウィンドウを取得できない理由がわかりません。
コメント
回答
変更する必要があります ” 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
)またはウィンドウ名を変数として指定すると、読みやすさが向上します。
w=hann(100);
で問題なく動作しますが、手動で行う必要があります