signal smoothing.m
来自「很好的软件」· M 代码 · 共 35 行
M
35 行
% Smoothing factor
p=0.95;
% Time span of interest
t=[0:0.05:10];
% Noise strength
sigma=0.1;
% Input noisy signal
sig=sin(t)+sigma*randn(1,length(t));
% Perform fft to break down components
F = fft2(sig);
% Get matrix as one big column, sorted in reverse order
F1 = F(:);
F1 = sort(abs(F1));
% Get max index of element to use for thresholding
j = ceil(p * length(F1));
% Get the value of the max element to allow
max_val = F1(j);
% Threshold the values
F = F .* (abs(F) > max_val);
% Reconstruct
new = ifft2(F);
plot(t,sig, t,new);
xlabel('Time (sec)')
ylabel('Sinusoidal Signal')
legend('original','smoothed')
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?