Denoising technique for signal with beforehand known shape (linear and exponential) I have a noisy signal which is linear and then exponential. I know the type (Gaussian additive noise) and degree (0.01) of noise. Part of the challenge is determining when the signal changed from linear to exponential. What is the best approach to denoise it?
I have tried to apply a Savitzky-Golay filter but the first derivative does not convey useful information. Please see pic below. 

Code below: 
from scipy.signal import savgol_filter
cleaned_signal = savgol_filter(clean_signal, 11, 1, 1)
 A: Since you know that the signal is a straight line for part 1, you could start with doing a linear least squares fit over a moving time window.  An easy way to do that would be to use Savitzky-Golay smoothing, choosing a linear fit:  you choose a time window size (number of points).  You apply the smoother at each time point, and it does the linear fit based on the data within the surrounding time window.  It is explained in the Wikipedia article, at https://en.wikipedia.org/wiki/Savitzky%E2%80%93Golay_filter .  They give several variations for handling the starting point, where you don't have a full window size available. 
Then, you'd want to detect the time when the exponential signal starts for part 2.  That should be obvious - the deviations between the estimate (smoother output) and the original data will start getting bigger and bigger (assuming you're monitoring exponential growth, not shrinking).  Since you know the variance, you could test for the difference from the prediction vs. the raw data.  Or alternatively, you could also use the Savitzky-Golay smoother that estimates the smoothed derivatives, not the smoothed values.  During the linear period 1, the derivative estimate should be very close to constant.  During the exponential period 2, the derivative estimate should be a function of the input signal.  
Once you have picked the transition point, you could keep the previous smoothed values within part 1.  For part 2, you could transform the data by taking the logarithm for each data point in part 2 and again do linear fitting.  After that straight line fit, transform the smoothed log values back by applying the exponential function. 
