In this homework, we will learn about EWMA etimation.
Often network protocols require knowledge of certain properties of links, for example, PRR, RTT, bandwidth, to work. That knowledge is acquired by estimating these metrics by a series of measurements and applying different filters or smoothing techniques. EWMA is widely used to smooth such measurements.
The diagram below shows the ground-truth RTT of a network:
Data: clean.txt
However, when a node measures RTT, there is some noise in the measurement and it may not look the same as the ground truth. For example, the following two graphs show RTT measurements with different amount of noise is introduced in the network:
Data: noisy.txt
Data: less-noisy.txt
Design a EWMA estimator so that you can try to recover the ground truth to the extent possible.
You can implement your estimator in Python, C++, or Java but it must run on bayou. When we grade your homework, we will execute your estimator on bayou and look at the output on stdout. Your estimator should output 50,000 lines corresponding to the estimate during those 50,000 time steps.
Quantify the the difference between the output of your estimator and the ground truth.