When you download a big enough file, you can see that in the early seconds, the download speed increases to finally reach its mean value. Why?
There's some overhead in negotiating and setting up the transfer, especially with protocols like FTP. FTP actually sets up a second TCP channel exclusively for data transfer, so a second 3-way handshake has to take place, etc etc.
Most TCP connections are set for "slow startup". The TCP code is kind of feeling its way up to the maximum segment size that will work for the route between two hosts.
The method for calculating download speed varies from software to software. The first thing to keep in mind is that speed is always calculated in the context of a certain time duration. Some software may display download speed for the entire time you've been downloading (could be hours), while other software may display download speed for only the most recent
x number of seconds. The shorter the time duration for the speed calculation, the more real-time the value is.
Further, when a download first begins, there is a choice to be made whether the software assumes an initial speed of 0, or whether the software assumes (and displays) no initial speed whatsoever until it has more data to make an estimate with.
In the situation you've described, it is possible that the software is such as the former above, and so it takes a few moments for the calculated value to average up (from 0) to a more accurate value.
It's called tcp windowing, on successful transmition of a packet the window the amount of data gets increased this will keep happening till an error in transmition happens it depends on the speed and reliabilty of the connection, the applications just calculates how long the transfer will take at the current rate the tcp window will allow