myhilbert.m
来自「实现地震勘探中」· M 代码 · 共 39 行
M
39 行
function data=myhilbert(data)% Compute Hilbert transform of input data, If "data" is a matrix, "myhilbert"% operates on each column % Written by: E. R.: December 13, 2003% Last updated: January 24, 2005: Change polarity of imaginary pa%% data=myhilbert(data)% INPUT% data vector or matrix; each column represents a signal% OUTPUT% hdata matrix; each column represents the Hilbert transform (complex) % of the corresponding column of the input matrix "data"% same dimension as input data "data"if ~isreal(data) error(' Input data must be real')end[data,ndim]=shiftdim(data); % Make sure that first dimension is not singletonnsamp=size(data,1);if nsamp == 1 returnenddata=fft(data);if mod(nsamp,2) == 0 % Nyquist frequency present ntr2=nsamp/2+1;else ntr2=(nsamp+1)/2;end %data(1,:)=-data(1,:);data(1,:)=0;data(2:ntr2,:)=-2*(data(2:ntr2,:));data(ntr2+1:end,:)=0;% hdata=-conj(ifft(data));data=-ifft(data);data=shiftdim(data,-ndim); % Undo dimension change, if there was one
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?