Recently, I came across a paper that focuses on signal processing using lock-in amplification.
the algorithm involves applying the Fast Fourier Transform (FFT) to a time-domain biosignal.
A band-pass filter is then applied in the frequency domain, specifically targeting the range of 0.7-1.5 Hz. This calculation is limited to spectral components with positive frequencies only.
The subsequent step involves performing the Inverse Fast Fourier Transform (IFFT) on the processed signal, resulting in a complex-numbered time-domain signal.
The article explains that the imaginary part of the signal is phase-shifted by π/2 relative to the real part of the signal.
Next step, the aurthor definiton a correlaion matrix is sum of the image pixel multipy the band-pass signal.Finally, use the dominate frequency reconstruct the signal like
This can be used as a reference function for lock-in amplification.
While this approach is not very common, I'm having trouble understanding its implications. How can this be interpreted?
The band pass matlab code is
samplerate=30;
for i = 1:1024
filename = ['image' num2str(i) '.tiff'];
img(:,:,i)= imread(filename); %1024 points
rawdata(i) = mean2(img(110:140,110:140,i)) % image ROI pixel mean as time signal
end
nfft=1024/2;
[row,column]=size(img(:,:,1));
ldf=samplerate/(nfft-1); % calculate band pass location
Freq_range=[0.7 1.5];
R1 = round(Freq_range(1)/ldf);
R2 = round(Freq_range(2)/ldf);
Y=fft(rawdata);
Y(1:R1)=0; % band pass
Y(R2:nfft+1)=0;
[m,p]=max(Y(1:nfft+1)); % the dominate frequency
Rcfeq_MXfeq=p*ldf;
BP_data=ifft(Y); % ifft signal is a complex number
%% lock in amplification
corrematrix = zeros(row,column);
for i = 1: length(rawdata)
corrematrix = corrematrix +raw_img(:,:,i)*BP_data(i);
end
t = [0:1023]/samplerate; % 時間向量
for j = 1 : length(rawdata)
H = real(corrematrix)*cos(2*pi*Rcfeq_MXfeq*t(j))+imag(corrematrix)*sin(2*pi*Rcfeq_MXfeq*t(j));
The artical is Photoplethysmographic imaging of high spatial resolution
DOI is 10.1364/BOE.2.000996