A method for heart rate estimation, the method comprising the steps of: estimating heart rate data of a user by an external system, wherein the estimated heart rate is distributed among a plurality of time windows; collecting data pertaining to a first mobility state and a second mobility state of the user by the external system, while estimating the heart rate data wherein the first mobility state is a state of rest and the second mobility state is a state of motion; and processing the estimated heart rate data by a processor and the data pertaining to the first mobility state and the second mobility state, characterised in that the processing comprises: identifying a transition state of the user as one of a first transition state, a second transition state, or a third transition state, in terms of transition between the first mobility state and the second mobility state while estimating the heart rate data, wherein the first transition state represents transition of the user from the first mobility state to the second mobility state between a first window and a second window of the plurality of time windows, wherein the second transition state represents the user continuing in the first mobility state between the first window and the second window of the plurality of time windows, and wherein the third transition state represents transition of user from the second mobility state to the first mobility state or the user continuing in the second mobility state between the first window and the second window of the plurality of time windows; filtering the estimated heart rate data by the processor based on the identified transition state of the user, wherein filtering the estimated heart rate data by executing a first method when the identified transition state is the first transition state and wherein filtering the heart rate data by executing a second method if the identified transition state is the second transition state and wherein filtering the heart rate data by executing a third method if the identified transition state is the third transition state, wherein filtering the heart rate data by executing the first method, the first method, comprises: checking whether heart rate value in the second window of the plurality of time windows lies between heart rate value in the first window and a first reference value, wherein the first reference value equals summation of heart rate value in the first window and a predefined heart rate change tolerance interval; if the heart rate value in the second window lies between the heart rate value in the first window and the first reference value, then resetting value of the tolerance interval equal to a first value; and generating the filtered heart rate data as equal to heart rate value in the second window as output; and if the heart rate value in the second window does not lie between the heart rate value in the first window and the first reference value: generating the filtered heart rate data as equal to summation of heart rate value in the first window and a second value as output. estimating heart rate data of a user by an external system, wherein the estimated heart rate is distributed among a plurality of time windows; collecting data pertaining to a first mobility state and a second mobility state of the user by the external system, while estimating the heart rate data wherein the first mobility state is a state of rest and the second mobility state is a state of motion; and processing the estimated heart rate data by a processor and the data pertaining to the first mobility state and the second mobility state, checking whether heart rate value in the second window of the plurality of time windows lies between heart rate value in the first window and a first reference value, wherein the first reference value equals summation of heart rate value in the first window and a predefined heart rate change tolerance interval; if the heart rate value in the second window lies between the heart rate value in the first window and the first reference value, then resetting value of the tolerance interval equal to a first value; and generating the filtered heart rate data as equal to heart rate value in the second window as output; and if the heart rate value in the second window does not lie between the heart rate value in the first window and the first reference value: generating the filtered heart rate data as equal to summation of heart rate value in the first window and a second value as output.