2011-02-27 20 views
5

我想繪製兩個函數:sin(x)和一個採樣和量化的sin(x)。該腳本是簡單以不同採樣率繪製兩個函數

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 

的問題是,我想的sin(x)是光滑和採樣的量化的sin(x)在1問題是間隔採樣,我找不到任何選擇這樣做。添加

set sample 21 

幾乎可以工作,但sin(x)看起來不夠平滑。有什麼辦法可以讓它變得更好嗎?

+0

嘗試'情節[0:16] [-8.5:8.5] F1(x)的用線中,f1(圓(X)+0.0)與步驟爲lt 2' – Eelvex

回答

7

回合f1()f1()本身的變量和使用floor(),而不是round()

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

也設置了很多樣本​​,以保持量化情節正確對齊:

set samples 1000 

如果使用round()而不是floor,量化步驟是「0.5個步驟」(0.5到1.5,1.5到2.5等)而不是「1個步驟」。

floor

round

+0

這是的。確切地說:round(f1(floor(x)+0.0)),f1(floor(x)+0.0)將會使它被採樣,這個舍入是爲了使它量化(在這種情況下是一個4位量化器)。謝謝。 – piotrek