To test the python spectrogram (from scipy.signal) , I've created a signal with 2 harmonics: 2 Hz and 8 Hz. Then I've added 50Hz noise and a trend (https://i.sstatic.net/XePzK.png). I wanted to retrieve those frequencies with spectrogram. I only find 10 Hz and about 50 Hz with the noised signal (https://i.sstatic.net/adMtp.png). I tried on the original signal without trend and without noise. I only find about 10 Hz (https://i.sstatic.net/Dy7pG.png). Do you have any explanation of this ? The code is only 3 lines ("new_sa" is the noised signal with the trend and "PerEch" period of sampling).
from scipy.signal import spectrogram
f,t1,Sxx = spectrogram(new_sa,1/PerEch)
plt.pcolormesh(t1,f,Sxx)
plt.colorbar()
Thank you