View Single Post
  #134  
Old March 21st 19, 02:25 AM posted to rec.bicycles.tech
Ralph Barone[_4_]
external usenet poster
 
Posts: 409
Default GPS Units = Show road steepness?

Radey Shouman wrote:
James writes:

On 21/3/19 3:37 am, wrote:
On Tuesday, March 19, 2019 at 1:58:13 PM UTC-7, James wrote:
On 20/3/19 4:20 am, Radey Shouman wrote:
writes: [ ... ]

averages in particular. And I think that it was Radey talking
about using IIR which would require a high end FPGA wouldn't
it? I'm buying a new, wireless VDO for $50.

An IIR can be very simple to implement. The "leaky integrator"
or "exponential filter" is probably the simplest digital low-pass
filter possible:

y_i = y_{i-1} + k (x_i - y_{i-1})

In C:

y += k*(x - y);

If you're not too fussed about the actual cutoff frequency the
multiplication can be done as a shift. The precision used for
the state, y, does need to be higher than that of the input.

If you need precise control over the frequency response then more
work in design and more expense in implementation is needed, but
not always.


y(i) = y(i-1) + k.x(i) - k.y(i-1)

y(i) = y(i-1) - k.y(i-1) + k.x(i)

k is usually a fraction, 0 k 1. To avoid floating point
arithmetic and division, if you make it a binary fraction (1/2,
1/4, 1/8, 1/16, etc), you can implement the filter with bit shifts,
and addition and subtraction only.

-- JS

Don't you think that it would all be a great deal easier to handle by
multiplying it enough to make them whole numbers and then displaying
them as if they had been fractional?


Can you illustrate your point with an example?


Sounds like fixed point arithmetic to me. Suppose you want to
represent signed numbers with 16 bits, 8 of them fractional.
1.0 is represented as 256. 0.5 is represented as 128.

If you multiply two 8.8 numbers together, you get a 16.16 number, shift
right by 8, check for overflow, and you have another 8.8 number.


Or just use hundredths of a km as your internal unit and do integer math,
then put the decimal point in the "wrong" place. Judicious choice of units
can sometimes save you some expensive math.

Ads
 

Home - Home - Home - Home - Home