ME597 - Particle Image Velocimetry: Submitted By: Karna Patel Homework: 4
ME597 - Particle Image Velocimetry: Submitted By: Karna Patel Homework: 4
Problem: 1
Image Padding:
phi4=real(fftshift(ifft2(conj(fft2(x1d2,128,128)) .* fft2(x2d2,128,128))));
toc
figure(3)
mesh(phi4)
[irf, icf] = find(phi4 == max(phi4(:)));
x_star_num1 = log(phi4(irf+1,icf)) - log(phi4(irf-1,icf));
x_star_den1 = 4*log(phi4(irf,icf)) - 2*log(phi4(irf-1,icf)) 2*log(phi4(irf+1,icf));
x_star1 = x_star_num1/x_star_den1
y_star_num1 = log(phi4(irf,icf+1)) - log(phi4(irf,icf-1));
y_star_den1 = 4*log(phi4(irf,icf)) - 2*log(phi4(irf,icf-1)) 2*log(phi4(irf,icf+1));
y_star1 = y_star_num1/y_star_den1
xdisplace1 = irf - 64 + x_star1
ydisplace1 = icf - 64 + y_star1
Displacement:
X displacement: -3.6281
Y displacement: 4.2134
Calculation Time:
Elapsed time is 0.008654 seconds
X displacement
Y displacement
Calculation time
Homework 3
-3.9541
4.8654
0.3215 sec.
Homework 4
-3.6281
4.2134
0.008654 sec.
Problem: 2
Image Shifting Algorithm:
%------------------------------------------------------------% Solution for problem 2 starts from here
%------------------------------------------------------------a1d2=double(x1(480:544,480:544));
a2d2=double(x2(480:544,480:544));
tic
phi4=real(fftshift(ifft2(conj(fft2(a1d2,64,64)) .* fft2(a2d2,64,64))));
toc
figure(4)
mesh(phi4)
[irf, icf] = find(phi4 == max(phi4(:)));
x_star_num1 = log(phi4(irf+1,icf)) - log(phi4(irf-1,icf));
x_star_den1 = 4*log(phi4(irf,icf)) - 2*log(phi4(irf-1,icf)) 2*log(phi4(irf+1,icf));
x_star1 = x_star_num1/x_star_den1
y_star_num1 = log(phi4(irf,icf+1)) - log(phi4(irf,icf-1));
y_star_den1 = 4*log(phi4(irf,icf)) - 2*log(phi4(irf,icf-1)) 2*log(phi4(irf,icf+1));
y_star1 = y_star_num1/y_star_den1
xa_displace1 = irf - 32 + x_star1
ya_displace1 = icf - 32 + y_star1
b1d2=double(x1(480:544,480:544));
%window 1 will remain the same
b2d2=double(x2(544:608,544:608));
%window 2 will shift one step
upward
tic
phi4=real(fftshift(ifft2(conj(fft2(b1d2,64,64)) .* fft2(b2d2,64,64))));
toc
figure(5)
mesh(phi4)
[irf, icf] = find(phi4 == max(phi4(:)));
x_star_num1 = log(phi4(irf+1,icf)) - log(phi4(irf-1,icf));
x_star_den1 = 4*log(phi4(irf,icf)) - 2*log(phi4(irf-1,icf)) 2*log(phi4(irf+1,icf));
x_star1 = x_star_num1/x_star_den1
y_star_num1 = log(phi4(irf,icf+1)) - log(phi4(irf,icf-1));
y_star_den1 = 4*log(phi4(irf,icf)) - 2*log(phi4(irf,icf-1)) 2*log(phi4(irf,icf+1));
y_star1 = y_star_num1/y_star_den1
xb_displace1 = irf - 32 + x_star1
yb_displace1 = icf - 32 + y_star1
c1d2=double(x1(480:544,480:544));
%window 1 will remain the same
c2d2=double(x2(608:672,608:672));
%window 2 will shift one step
upward
tic
phi4=real(fftshift(ifft2(conj(fft2(c1d2,64,64)) .* fft2(c2d2,64,64))));
toc
figure(6)
mesh(phi4)
[irf, icf] = find(phi4 == max(phi4(:)));
x_star_num1 = log(phi4(irf+1,icf)) - log(phi4(irf-1,icf));
x_star_den1 = 4*log(phi4(irf,icf)) - 2*log(phi4(irf-1,icf)) 2*log(phi4(irf+1,icf));
x_star1 = x_star_num1/x_star_den1
y_star_num1 = log(phi4(irf,icf+1)) - log(phi4(irf,icf-1));
y_star_den1 = 4*log(phi4(irf,icf)) - 2*log(phi4(irf,icf-1)) 2*log(phi4(irf,icf+1));
y_star1 = y_star_num1/y_star_den1
xc_displace1 = irf - 32 + x_star1
yc_displace1 = icf - 32 + y_star1
k1d2=double(x1(480:544,480:544));
%window 1 will remain the same
k2d2=double(x2(416:480,416:480));
%window 2 will shift one step
downward
tic
phi4=real(fftshift(ifft2(conj(fft2(k1d2,64,64)) .* fft2(k2d2,64,64))));
toc
figure(7)
mesh(phi4)
[irf, icf] = find(phi4 == max(phi4(:)));
x_star_num1 = log(phi4(irf+1,icf)) - log(phi4(irf-1,icf));
x_star_den1 = 4*log(phi4(irf,icf)) - 2*log(phi4(irf-1,icf)) 2*log(phi4(irf+1,icf));
x_star1 = x_star_num1/x_star_den1
y_star_num1 = log(phi4(irf,icf+1)) - log(phi4(irf,icf-1));
y_star_den1 = 4*log(phi4(irf,icf)) - 2*log(phi4(irf,icf-1)) 2*log(phi4(irf,icf+1));
y_star1 = y_star_num1/y_star_den1
xk_displace1 = irf - 32 + x_star1
yk_displace1 = icf - 32 + y_star1
l1d2=double(x1(480:544,480:544));
%window 1 will remain steady
l2d2=double(x2(416:480,416:480));
%window 2 will shift one step
downward
tic
phi4=real(fftshift(ifft2(conj(fft2(l1d2,64,64)) .* fft2(l2d2,64,64))));
toc
figure(8)
mesh(phi4)
[irf, icf] = find(phi4 == max(phi4(:)));
x_star_num1 = log(phi4(irf+1,icf)) - log(phi4(irf-1,icf));
x_star_den1 = 4*log(phi4(irf,icf)) - 2*log(phi4(irf-1,icf)) 2*log(phi4(irf+1,icf));
x_star1 = x_star_num1/x_star_den1
y_star_num1 = log(phi4(irf,icf+1)) - log(phi4(irf,icf-1));
y_star_den1 = 4*log(phi4(irf,icf)) - 2*log(phi4(irf,icf-1)) 2*log(phi4(irf,icf+1));
y_star1 = y_star_num1/y_star_den1
xl_displace1 = irf - 32 + x_star1
yl_displace1 = icf - 32 + y_star1
x_known = -3.70
%Known x displacement
y_known = 4.31
%Known y displacement
RMS_error_1 = ((xa-x_known)^2 - (ya-y_known)^2)^0.5
%RMS error for
superimpose case
Contour Plots:
- As shown in the below image, we put interrogation
window 1 fix throughout the calculation.
- Interrogation