先说直流信号,偶在前面的RC选择, 一般是以不影响精度为前提的, 电容的放电公式U=U0*(e^(-t/τ)),实际上,电容在充电,也是在放电, 所以8楼说的不对,不一定是结果小于实际值,也可能是大于实际值。 解释一下为什么要用放电公式,不用充电公式。 本来应该考虑电容充电和放电两种情况,实际上运算结果是一样的, 实际电压和电容两端的电压这个电压差对电容充电,最后算电容两端电压和实际电压的差,与电容两端实际上有这样一个电压差,对0电压放电,运算结果是一样的,所以就用电容的放电公式 这里的t就是采样间隔,τ就是时间常数, 而U与U0的比值,e^(-t/τ)就是相对误差。 对于8位采样,相对误差要小于等于1/256,也就是说t>ln(256)t=5.545τ,或τ<0.18t 对于10位采样相对误差要小于等于1/1024,也就是说t>6.93τ,或τ<0.144t 对于12位采样相对误差要小于等于1/4096,也就是说t>8.31τ 就对采样精度没有任何影响,满足远高于条件。 基本来说,一位精度对应0.7τ即可。 其实只要耐心推导就能得出这个结论。 上面这个只是考虑了最差的情况,就是说,输入信号在一个采样间隔内从0直接变成满幅度,或从满幅度直接变为0,这个RC滤波不会影响采样精度, 而实际上,信号变化幅度可能很小,甚至只有几个LSB, 这时候算法要改改,如果变化幅度只有1/2,那么就等于采样位数少了1位,可以减去0.7τ,如果变化幅度只有1/10,则等效率采样位数少了3.32位,可以减去2.3个τ。 偶用这个计算方法的时候,是采样电机上的电流,而电机是PWM驱动的,而采样电阻上的电流确实是从0变到几乎满幅度和从满幅度几乎变为0,每个PWM周期采样一次,所以一定要按原来那么算。 希望偶这个算法能对大家有所帮助。
还有,偶不是版主,偶来这里这么长时间还没穿过裤子呢, 不知道版主能不能给条裤子,不过不知道这个裤子能不能穿到偶身上呢。
|