Algorithmic and architectural optimization techniques in particle filtering for FPGA-Based navigation applications