RF トランシーバーから取得した位相シフト情報を含む波形があります。規則的な波形ではなく、下の写真のように凹凸があります。ペイントを使用してエンベロープを説明しましたが、MATLAB でそれを行うにはどうすればよいですか?
また、waveform.csv を添付しました。私の MATLAB コードでは、生の信号を平滑化するために既に平均化フィルターを使用しています。
エンベロープ.m :
clc; clear all; close all;
%% Extract data from .csv
file = '150825_px6_human_rotcw_0to60cm_Ch1.csv';
data = csvread(file, 0, 3);
%% Shift time
shift = data(1,1);
for i = 1:length(data)
t(i) = data(i,1) - shift;
end
%% Low pass filter
filterlen = 500;
y = myfilter(data(:,2), filterlen);
%% Plot
figure;
plot(data(:,1), data(:,2));
title('Raw signal');
figure;
plot(t(1:end-filterlen+1), y);
title('After low pass filter');
function y = myfilter(x,a)
for i = 1:(length(x)-(a-1))
y(i) = sum(x(i:(i+a-1)))/a;
end
y = y';
end