B bihu Unregistered / Unconfirmed GUEST, unregistred user! 2000-03-04 #1 用鼠标在画布上画出轨迹,怎样将轨迹进行采样(256点)并存在数组中? 最好能附段可用的程序!
G g622 Unregistered / Unconfirmed GUEST, unregistred user! 2000-03-04 #2 只能256点吗? 1)先在mousemove事件中记录所有点坐标 2) while 点的个数(sum)>256 do begin for i:=1 to sum do if 前三点的导数变化率(曲折度)<某个确定值Q then begin 把第二个以后所有点前移,从而滤掉中间的点; if 点的个数(sum)<=256 then break; end; q:=q-0.01; end 3)前三点的导数变化率大概是 ((y1-y2)/(x1-x2)-(y2-y3)/(x2-x3))/(x1-x3) 4)如果开始点的数目不够,可以在后面用最后一个点 补齐
只能256点吗? 1)先在mousemove事件中记录所有点坐标 2) while 点的个数(sum)>256 do begin for i:=1 to sum do if 前三点的导数变化率(曲折度)<某个确定值Q then begin 把第二个以后所有点前移,从而滤掉中间的点; if 点的个数(sum)<=256 then break; end; q:=q-0.01; end 3)前三点的导数变化率大概是 ((y1-y2)/(x1-x2)-(y2-y3)/(x2-x3))/(x1-x3) 4)如果开始点的数目不够,可以在后面用最后一个点 补齐
K Kang Unregistered / Unconfirmed GUEST, unregistred user! 2000-03-05 #3 你怎么用鼠标画的,轨迹是什么样的?把程序贴出来,让大家看一下什么轨迹.
G g622 Unregistered / Unconfirmed GUEST, unregistred user! 2000-03-06 #4 bihu: 导数变化率(曲折度)也可以用三点所成的折线之间的 夹角来表示。
K Kang Unregistered / Unconfirmed GUEST, unregistred user! 2000-03-06 #5 他好象只是要对模拟得到的信号采样,可能不需要导数变化率. To bihu: 是要等间隔采样吗?
G g622 Unregistered / Unconfirmed GUEST, unregistred user! 2000-03-06 #6 kang: 我从他的原文上看好象是要把多轨迹点压缩到256点,且最大 保留轨迹的“形状”,所以肯定不是“等间隔”采样,关键是如何 “不等间隔”采样。如果真是“等间隔”,那统计有多少点,然后 算一下每格多少点”采样“即可了。 我们还是看一看bihu怎么说吧。
kang: 我从他的原文上看好象是要把多轨迹点压缩到256点,且最大 保留轨迹的“形状”,所以肯定不是“等间隔”采样,关键是如何 “不等间隔”采样。如果真是“等间隔”,那统计有多少点,然后 算一下每格多少点”采样“即可了。 我们还是看一看bihu怎么说吧。
K Kang Unregistered / Unconfirmed GUEST, unregistred user! 2000-03-06 #10 To g622 我猜bihu是学电子的.因为我也是学电子的,所以猜是等间隔. To bihu: 能把你的画图程序告诉我吗?我知道画的轨迹特点,才能写采样程序.
K Kang Unregistered / Unconfirmed GUEST, unregistred user! 2000-03-06 #14 等间隔采样应该很简单,只是时间可能要长一些.对时间有要求吗?
B bihu Unregistered / Unconfirmed GUEST, unregistred user! 2000-03-07 #16 难得大家这么热心,谢谢! 是这样:我们要用鼠标画出任意波, 采样256点后存在数组中, 写入6116芯片中, 再输出到示波器上.
I iie Unregistered / Unconfirmed GUEST, unregistred user! 2000-03-07 #17 开个窗口,画好坐标,当然是等间隔的, 然后嘛,在间隔上取出轨迹的纵坐标不就行了。
侠 侠圣 Unregistered / Unconfirmed GUEST, unregistred user! 2000-03-07 #18 不知你是否用过MATLAB,MATLAB中有很多函数可以进行插值和采样。如:interp,interp1,spline等等。你可以参考一下。 另外如果你是用C++(VC或BC)的话,则可以直接调用MATLAB函数。 你可以到http://www.mathtools.com去下载相应的库函数
不知你是否用过MATLAB,MATLAB中有很多函数可以进行插值和采样。如:interp,interp1,spline等等。你可以参考一下。 另外如果你是用C++(VC或BC)的话,则可以直接调用MATLAB函数。 你可以到http://www.mathtools.com去下载相应的库函数