2011-02-27 15 views
5

sin(x)とサンプリングされ量子化されたsin(x)の2つの関数をプロットします。スクリプトは問題がある 異なるサンプルレートで2つの関数をプロットする

set xtic 1 
set ytic 1 
f1(x) = sin(x/16*2*pi)*8 
round(x) = x - floor(x) < 0.5 ? floor(x) : ceil(x) 
plot [0:16] [-8.5:8.5] f1(x) with lines, round(f1(x)) with steps lt 2 

が、私は罪(x)は、滑らかになりたい

簡単で、サンプリングされた量子化された罪(x)が問題である1の間隔でサンプリングされた、私はいずれかを見つけることができませんオプションを使用します。追加すると、sin(x)は十分に滑らかに見えません。それを改善する方法はありますか?あなたが使用している場合は

set samples 1000 

f1()の変数ではないf1()自体ラウンド

+0

'プロット[午後12時16分] [-8.5:8.5]試し2' – Eelvex

答えて

7

round()

plot [0:16] [-8.5:8.5] f1(x) with lines, f1(floor(x)+0.0) with steps lt 2 

の代わりにfloor()を使用するには、また、適切に整列量子化されたプロットを保つために多くのサンプルを設定しましたfloorではなく、round()の代わりに、量子化ステップは「1ステップ」の代わりに「0.5ステップ」(0.5〜1.5,1.5〜2.5など)である。

floor

round

+0

このLTステップと行、F1(ラウンド(X)+0.0)とF1(X)をそれだった。正確には:round(f1(floor(x)+0.0))、f1(floor(x)+0.0)はサンプリングを行い、丸めは量子化します(この場合、4ビット量子化)。ありがとう。 – piotrek

関連する問題