2011-02-27 12 views
5

Quiero trazar dos funciones: sin (x) y un pecado muestreado y cuantificado (x). El guión es simpleTrazado de dos funciones con diferente frecuencia de muestreo

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 

El problema es que quieren que el sen (x) sea suave y el muestreado un pecado cuantificado (x) muestreada a intervalos de 1. El problema es que no puedo encontrar ninguna opción para hacerlo. Agregar

set sample 21 

casi funciona, pero el pecado (x) no se ve lo suficientemente suave. ¿Hay alguna forma de hacerlo mejor?

+0

Try 'parcela [doce y dieciséis] [-8,5: 8,5] f1 (x) con las líneas, f1 (round (x) 0.0) con pasos lt 2' – Eelvex

Respuesta

7

Ronda de la variable de f1() no f1() sí mismo y utilizar floor() en lugar de round()

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

Además, establecer una gran cantidad de muestras para mantener la trama cuantificado adecuadamente alineados:

set samples 1000 

Si utiliza round() en lugar de floor los pasos de cuantificación son "0.5 pasos" (0.5 a 1.5, 1.5 a 2.5 etc.) en lugar de "1 pasos".

floor

round

+0

Este era que. Para ser exactos: round (f1 (floor (x) +0.0)), f1 (floor (x) +0.0) solo lo hará muestreado, la ronda lo hará cuantificado (un cuantificador de 4 bits en este caso). Gracias. – piotrek

Cuestiones relacionadas