how to filter data by rate of change?
    6 visualizzazioni (ultimi 30 giorni)
  
       Mostra commenti meno recenti
    
    Sven Larsen
 il 6 Feb 2025
  
    
    
    
    
    Commentato: Mathieu NOE
      
 il 7 Feb 2025
            I am trying to filter signal, where data of certain rate oif change is filtered out. I am not able to achieve my goals, for example with lowpass (tried for example lowpass(yTemp, 10, Fs2). below is plot with original signal to be filtered (blue) and with red, I have hand drawn what how I would like to filtered signal to behave. Of course it doesent need to be precisely like drawn, its just for example, to illustrate the point.

data is in attachment (x,y,Fs).
all help is appreciated
0 Commenti
Risposta accettata
  Mathieu NOE
      
 il 6 Feb 2025
        
      Modificato: Mathieu NOE
      
 il 6 Feb 2025
  
      hello 
I was thinking that I could use the "baseline" correction approach,  then apply a scale factor on the baseline compensated signal , add  some smoothing then put back the base
 and this is the result so far : 
load('vars.mat')
% option # 1 : obtain the lower envelope data
N = 200;
[up1,down1] = envelope(yTemp,N,'peak'); 
% now apply smoothing on baseline corrected data and put back the baseline in
yc = yTemp - down1;
yscale_factor = 0.25; % apply only a fraction of yc (baseline corrected signal)
yTemps = smoothdata(yscale_factor*yc,'gaussian',2*N) + down1;
figure
plot(x,yTemp,x,down1,'--',x,yTemps,'linewidth',2)
legend('signal','lower envelope','smoothed');
Più risposte (0)
Vedere anche
Categorie
				Scopri di più su Multirate Signal Processing in Help Center e File Exchange
			
	Prodotti
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!

