func_backwardpeaktransform.m

来自「一些个 人收集的小波变换的程序」· M 代码 · 共 56 行

M
56
字号

function [H] = backwardPeakTransform(orgF, peakMap)

	N = length(orgF);

	truePeaks = zeros(1, N);
	numTruePeaks = 0;

	truePeaks(1) = 1;
	numTruePeaks = 1;

	for k=1:N,
		if(peakMap(k)>0)
			numTruePeaks = numTruePeaks + 1;
			truePeaks(numTruePeaks) = k;
		end
	end

	numTruePeaks = numTruePeaks + 1;
	truePeaks(numTruePeaks) = N;


	%%--find length--
	base = 1;
	for k=1:2:(numTruePeaks-1),
		pos0 = truePeaks(k);
		pos1 = truePeaks(k+1);
		base = base + (pos1 - pos0);
	end

	H = orgF * 0;
	ptrUp = 1;
	ptrDown = base;
	shift = orgF(1);

	linkFlag = 1;
	for k=1:(numTruePeaks-1),
		pos0 = truePeaks(k);
		pos1 = truePeaks(k+1);

		if(linkFlag > 0),
			H(pos0:pos1) = 	orgF(ptrUp: (ptrUp + pos1 - pos0)) - orgF(ptrUp) + shift;
			ptrUp = ptrUp + pos1 - pos0;
			shift = H(pos1);
			linkFlag = (-1) * linkFlag;
		else
			H(pos0:pos1) = orgF(ptrDown:(ptrDown + pos1 - pos0)) - orgF(ptrDown) + shift;
			ptrDown = ptrDown + pos1 - pos0;
			shift = H(pos1);
			linkFlag = (-1) * linkFlag;
		end

	end

return;

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?