A processor implemented method for heart rate estimation, comprising: collecting a Photoplethysmogram signal over a plurality of fixed time windows from a user being monitored, via one or more hardware processors; determining whether the user was in motion in any of the plurality of time windows while the PPG signal was being collected, by performing a mobility detection, via the one or more hardware processors; classifying each of the plurality of time windows as belonging to one of a set of time windows in which user is determined as in motion and a set of time windows in which user is determined as not in motion; and performing the heart rate estimation for the PPG signal collected over each time window belonging to the set of time windows in which user is determined as in motion, via the one or more hardware processors, comprising: estimating a noise signal by performing a Principle Component Analysis of an accelerometer signal collected over each of the time windows in which the user is determined as being in motion; estimating value of a true cardiac signal for each of the time windows in which the user is determined as being in motion, wherein the true cardiac signal is a PPG signal without outliers, and wherein estimating value of the true cardiac signal comprises: obtaining a pre-defined number of spectra associated with true cardiac signals prior to a time window being considered, from a Clean Signal Buffer; and estimating the value of the true cardiac signal by taking a trimmed mean of the obtained pre-defined number of spectra, wherein the value of the true cardiac signal (b k) is estimated by: b k = 1 N ∑ i = 1 N CB i k ∀ k ∈ 1, M, wherein N represents the obtained pre-defined number of spectra and M represents a total number of frequency bins; estimating spectrum of a clean PPG signal based on the estimated noise signal and the estimated value of the true cardiac signal, using a wiener filter; and estimating heart rate of the user based on the estimated spectrum of the clean PPG signal. collecting a Photoplethysmogram signal over a plurality of fixed time windows from a user being monitored, via one or more hardware processors; determining whether the user was in motion in any of the plurality of time windows while the PPG signal was being collected, by performing a mobility detection, via the one or more hardware processors; classifying each of the plurality of time windows as belonging to one of a set of time windows in which user is determined as in motion and a set of time windows in which user is determined as not in motion; and performing the heart rate estimation for the PPG signal collected over each time window belonging to the set of time windows in which user is determined as in motion, via the one or more hardware processors, comprising: estimating a noise signal by performing a Principle Component Analysis of an accelerometer signal collected over each of the time windows in which the user is determined as being in motion; estimating value of a true cardiac signal for each of the time windows in which the user is determined as being in motion, wherein the true cardiac signal is a PPG signal without outliers, and wherein estimating value of the true cardiac signal comprises: obtaining a pre-defined number of spectra associated with true cardiac signals prior to a time window being considered, from a Clean Signal Buffer; and estimating the value of the true cardiac signal by taking a trimmed mean of the obtained pre-defined number of spectra, wherein the value of the true cardiac signal (b k) is estimated by: b k = 1 N ∑ i = 1 N CB i k ∀ k ∈ 1, M, wherein N represents the obtained pre-defined number of spectra and M represents a total number of frequency bins; estimating spectrum of a clean PPG signal based on the estimated noise signal and the estimated value of the true cardiac signal, using a wiener filter; and estimating heart rate of the user based on the estimated spectrum of the clean PPG signal. estimating a noise signal by performing a Principle Component Analysis of an accelerometer signal collected over each of the time windows in which the user is determined as being in motion; estimating value of a true cardiac signal for each of the time windows in which the user is determined as being in motion, wherein the true cardiac signal is a PPG signal without outliers, and wherein estimating value of the true cardiac signal comprises: obtaining a pre-defined number of spectra associated with true cardiac signals prior to a time window being considered, from a Clean Signal Buffer; and estimating the value of the true cardiac signal by taking a trimmed mean of the obtained pre-defined number of spectra, wherein the value of the true cardiac signal (b k) is estimated by: b k = 1 N ∑ i = 1 N CB i k ∀ k ∈ 1, M, wherein N represents the obtained pre-defined number of spectra and M represents a total number of frequency bins; obtaining a pre-defined number of spectra associated with true cardiac signals prior to a time window being considered, from a Clean Signal Buffer; and estimating the value of the true cardiac signal by taking a trimmed mean of the obtained pre-defined number of spectra, wherein the value of the true cardiac signal (b k) is estimated by: b k = 1 N ∑ i = 1 N CB i k ∀ k ∈ 1, M, wherein N represents the obtained pre-defined number of spectra and M represents a total number of frequency bins; estimating spectrum of a clean PPG signal based on the estimated noise signal and the estimated value of the true cardiac signal, using a wiener filter; and estimating heart rate of the user based on the estimated spectrum of the clean PPG signal.