DC オフセットがあり、傾きがわずかにある可能性があるデータがあります。信号は 2 つの主要なピーク (ガウスに似ています) であり、その後に減衰振動が続きます。
次のコードを試しましたが、これは DC オフセットを削除しません。曲線オフセット (正弦波?) を削除します。
function [ filteredData ] = fourierFilter( inputData )
factor = 8;
N = 1024*factor;
dataRaw = zeros([1 N]);
dataStart = N/2 - round(size(inputData,2)/2);
indices = dataStart:(dataStart+size(inputData,2))-1;
dataRaw(indices) = inputData;
% transform to fourierspace
fourierSpectrum = (fftshift(fft(dataRaw)));
% add filter
delta = 1*factor/4;
indicesfftfilter = N/2-delta:N/2+delta;
fourierSpectrum(indicesfftfilter) = 0;
% back transform
filteredData = real(ifft(ifftshift(fourierSpectrum)));
filteredData = (filteredData(indices));
以下は、データ (青) とフィルター処理された曲線 (赤) の例です。delta = 3*factor/4