2011-02-27 2 views
5

Je souhaite tracer deux fonctions: sin (x) et sin (x) échantillonné et quantifié. Le script est simpleTracé de deux fonctions avec une fréquence d'échantillonnage différente

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 

Le problème est, je veux le péché (x) soit lisse et échantillonné un péché quantifiée (x) échantillonné à des intervalles de 1. Le problème est, je ne trouve pas de option pour le faire. L'ajout de

set sample 21 

fonctionne presque, mais le sin (x) ne semble pas assez lisse. Y a-t-il un moyen de le rendre meilleur?

+0

Essayez 'plot [00:16] [-8,5: 8,5] f1 (x) avec des lignes, f1 (rond (x) +0.0) avec des étapes lt 2' – Eelvex

Répondre

7

Autour de la variable de f1() pas f1() lui-même et utiliser floor() au lieu de round()

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

également, mis beaucoup d'échantillons pour garder le terrain quantifiée correctement aligné:

set samples 1000 

Si vous utilisez round() au lieu de floor les étapes de quantification sont "0,5 étapes" (0,5 à 1,5, 1,5 à 2,5 etc.) au lieu de "1 étapes".

floor

round

+0

Cette était-ce. Pour être exact: round (f1 (floor (x) +0.0)), f1 (floor (x) +0.0) va juste le faire sampler, le round doit le faire quantifier (un quantificateur 4 bits dans ce cas). Merci. – piotrek

Questions connexes