Signal smoothing for logarithmic timescale

조회 수: 29 (최근 30일)
Divij Gupta
Divij Gupta 2021년 7월 9일
댓글: Mathieu NOE 2021년 7월 9일
I want to perform signal smoothing for the graph shown above. However, using the method shown in MATLAB documentation is not working since the timescale for my graph is logarithmic (logspace(1,5,1000)), not linear. How can I smooth this using a filter?

채택된 답변

Mathieu NOE
Mathieu NOE 2021년 7월 9일
hello
you can smooth data even in log spacing
a demo code is provided below. I kept the amount of samples low , so the smoothed curve is easy to see that the constant log spacing is still there.
clc
clearvars
% dummy data : x is Logarithmically spaced vector
samples = 100;
xlog = logspace(1,5,samples);
ylog = (1-exp(-xlog*1e-4)).*randn(1,samples);
% smoothdata
N = 25;
ylogs = smoothdata(ylog,"gaussian",N);
semilogx(xlog,ylog,xlog,ylogs,'-*');
legend ('raw data','smoothed');
  댓글 수: 2
Divij Gupta
Divij Gupta 2021년 7월 9일
Thank you so much! This works perfectly
Mathieu NOE
Mathieu NOE 2021년 7월 9일
My pleasure

댓글을 달려면 로그인하십시오.

추가 답변 (0개)

카테고리

Help CenterFile Exchange에서 Smoothing and Denoising에 대해 자세히 알아보기

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by