From 6cf3e2afb4c9f368323f9b62821178dfbdffd205 Mon Sep 17 00:00:00 2001 From: Mark Chiew <mchiew@fmrib.ox.ac.uk> Date: Wed, 4 Mar 2020 09:08:53 +0000 Subject: [PATCH] Added some matlab vs python comparisons, bloch simulator and partial fourier --- talks/matlab_vs_python/bloch/bloch.ipynb | 127 ++++++++++++++++ talks/matlab_vs_python/bloch/bloch.m | 32 +++++ talks/matlab_vs_python/bloch/bloch.py | 40 ++++++ .../matlab_vs_python/partial_fourier/data.mat | Bin 0 -> 66518 bytes .../partial_fourier/partial_fourier.ipynb | 136 ++++++++++++++++++ .../partial_fourier/partial_fourier.m | 32 +++++ .../partial_fourier/partial_fourier.py | 32 +++++ 7 files changed, 399 insertions(+) create mode 100644 talks/matlab_vs_python/bloch/bloch.ipynb create mode 100644 talks/matlab_vs_python/bloch/bloch.m create mode 100644 talks/matlab_vs_python/bloch/bloch.py create mode 100644 talks/matlab_vs_python/partial_fourier/data.mat create mode 100644 talks/matlab_vs_python/partial_fourier/partial_fourier.ipynb create mode 100644 talks/matlab_vs_python/partial_fourier/partial_fourier.m create mode 100644 talks/matlab_vs_python/partial_fourier/partial_fourier.py diff --git a/talks/matlab_vs_python/bloch/bloch.ipynb b/talks/matlab_vs_python/bloch/bloch.ipynb new file mode 100644 index 0000000..a96717a --- /dev/null +++ b/talks/matlab_vs_python/bloch/bloch.ipynb @@ -0,0 +1,127 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Imports" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "import numpy as np\n", + "from scipy.integrate import ode\n", + "import matplotlib.pyplot as plt" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Define bloch and B_eff functions" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "def bloch_ode(t,M,T1,T2):\n", + " B = B_eff(t)\n", + " return np.array([M[1]*B[2] - M[2]*B[1] - M[0]/T2,\n", + " M[2]*B[0] - M[0]*B[2] - M[1]/T2,\n", + " M[0]*B[1] - M[1]*B[0] - (M[2]-1)/T1])\n", + "\n", + "def B_eff(t):\n", + " if t < 0.25:\n", + " return np.array([0, 0, 0])\n", + " elif t < 1.25:\n", + " return np.array([1.8*np.sinc(t-0.75), 0, 0])\n", + " elif t < 1.50:\n", + " return np.array([0, 0, 0])\n", + " elif t < 3.00:\n", + " return np.array([0, 0, 2*np.pi])\n", + " else:\n", + " return np.array([0, 0, 0])" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Integrate ODE" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "t = np.array([0])\n", + "M = np.array([[0, 0, 1]])\n", + "dt= 0.005\n", + "r = ode(bloch_ode)\n", + "r.set_integrator('dopri5')\n", + "r.set_initial_value(M[0],t[0])\n", + "r.set_f_params(1500, 50)\n", + "while r.successful() and r.t < 5:\n", + " t = np.append(t,r.t+dt)\n", + " M = np.append(M, np.array([r.integrate(t[-1])]),axis=0)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Plot Results" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "_, ax = plt.subplots(figsize=(12,12))\n", + "ax.plot(t,M[:,0], label='Mx')\n", + "ax.plot(t,M[:,1], label='My')\n", + "ax.plot(t,M[:,2], label='Mz')\n", + "ax.legend()" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [] + } + ], + "metadata": { + "kernelspec": { + "display_name": "Python 3", + "language": "python", + "name": "python3" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.7.3" + } + }, + "nbformat": 4, + "nbformat_minor": 4 +} diff --git a/talks/matlab_vs_python/bloch/bloch.m b/talks/matlab_vs_python/bloch/bloch.m new file mode 100644 index 0000000..324fcc8 --- /dev/null +++ b/talks/matlab_vs_python/bloch/bloch.m @@ -0,0 +1,32 @@ +%% Imports + +%% Integrate ODE +[t, M] = ode45(@(t,M)bloch_ode(t,M,1500,50),linspace(0,5,1000),[0;0;1]); + +%% Plot Results +clf();hold on; +plot(t,M(:,1)); +plot(t,M(:,2)); +plot(t,M(:,3)); + +%% Define bloch and b_eff functions +function dM = bloch_ode(t,M,T1,T2) + B = B_eff(t); % B-effective + dM = [M(2)*B(3) - M(3)*B(2) - M(1)/T2; % dMx/dt + M(3)*B(1) - M(1)*B(3) - M(2)/T2; % dMy/dt + M(1)*B(2) - M(2)*B(1) - (M(3)-1)/T1]; % dMz/dt +end + +function b = B_eff(t) + if t < 0.25 % No B-field + b = [0, 0, 0]; + elseif t < 1.25 % 1-ms excitation around x-axis + b = [1.8*sinc(t-0.75), 0, 0]; + elseif t < 1.50 % No B-field + b = [0, 0, 0]; + elseif t < 3.00 % Gradient in y-direction + b = [0, 0, 2*pi]; + else % No B-field + b = [0, 0, 0]; + end +end \ No newline at end of file diff --git a/talks/matlab_vs_python/bloch/bloch.py b/talks/matlab_vs_python/bloch/bloch.py new file mode 100644 index 0000000..873798d --- /dev/null +++ b/talks/matlab_vs_python/bloch/bloch.py @@ -0,0 +1,40 @@ +#%% Imports +import numpy as np +from scipy.integrate import ode +import matplotlib.pyplot as plt + +#%% Define bloch and B_eff functions +def bloch_ode(t,M,T1,T2): + B = B_eff(t) + return np.array([M[1]*B[2] - M[2]*B[1] - M[0]/T2, + M[2]*B[0] - M[0]*B[2] - M[1]/T2, + M[0]*B[1] - M[1]*B[0] - (M[2]-1)/T1]) + +def B_eff(t): + if t < 0.25: + return np.array([0, 0, 0]) + elif t < 1.25: + return np.array([1.8*np.sinc(t-0.75), 0, 0]) + elif t < 1.50: + return np.array([0, 0, 0]) + elif t < 3.00: + return np.array([0, 0, 2*np.pi]) + else: + return np.array([0, 0, 0]) + +#%% Integrate ODE +t = np.array([0]) +M = np.array([[0, 0, 1]]) +dt= 0.005 +r = ode(bloch_ode)\ + .set_integrator('dopri5')\ + .set_initial_value(M[0],t[0])\ + .set_f_params(1500, 50) +while r.successful() and r.t < 5: + t = np.append(t,r.t+dt) + M = np.append(M, np.array([r.integrate(t[-1])]),axis=0) + +#%% Plot Results +plt.plot(t,M[:,0]) +plt.plot(t,M[:,1]) +plt.plot(t,M[:,2]) \ No newline at end of file diff --git a/talks/matlab_vs_python/partial_fourier/data.mat b/talks/matlab_vs_python/partial_fourier/data.mat new file mode 100644 index 0000000000000000000000000000000000000000..c63c984d088a3280bafb2a681a3a8a50853531cf GIT binary patch literal 66518 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 J{{$_X3X&{ZH9!CW literal 0 HcmV?d00001 diff --git a/talks/matlab_vs_python/partial_fourier/partial_fourier.ipynb b/talks/matlab_vs_python/partial_fourier/partial_fourier.ipynb new file mode 100644 index 0000000..ea2bb3e --- /dev/null +++ b/talks/matlab_vs_python/partial_fourier/partial_fourier.ipynb @@ -0,0 +1,136 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Imports" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "import h5py\n", + "import matplotlib.pyplot as plt\n", + "import numpy as np" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Load Data" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "h = h5py.File('data.mat','r')\n", + "img = np.transpose(h.get('img')['real']+1j*h.get('img')['imag'])" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "6/8 Partial Fourier sampling" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "n = np.random.randn(96,96) + 1j*np.random.randn(96,96)\n", + "y = np.fft.fftshift(np.fft.fft2(img),axes=0) + n\n", + "y[72:,:] = 0" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Estimate phase" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "pad = np.pad(np.hanning(48),24,'constant')[:,None]\n", + "phs = np.exp(1j*np.angle(np.fft.ifft2(np.fft.ifftshift(y*pad,axes=0))))" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "POCS reconstruction" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "est = np.zeros((96,96))\n", + "iters = 10\n", + "for i in range(iters):\n", + " est = np.fft.fftshift(np.fft.fft2(est*phs),axes=0)\n", + " est[:72,:] = y[:72,:]\n", + " est = np.maximum(np.real(np.fft.ifft2(np.fft.ifftshift(est,axes=0))*np.conj(phs)),0)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Plot reconstruction" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "_, ax = plt.subplots(1,2,figsize=(16,16))\n", + "ax[0].imshow(np.abs(np.fft.ifft2(np.fft.ifftshift(y,axes=0))), vmin=0, vmax=1)\n", + "ax[0].set_title('Zero-filled')\n", + "ax[1].imshow(est, vmin=0, vmax=1)\n", + "ax[1].set_title('POCS recon')" + ] + } + ], + "metadata": { + "kernelspec": { + "display_name": "Python 3", + "language": "python", + "name": "python3" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.7.3" + } + }, + "nbformat": 4, + "nbformat_minor": 4 +} diff --git a/talks/matlab_vs_python/partial_fourier/partial_fourier.m b/talks/matlab_vs_python/partial_fourier/partial_fourier.m new file mode 100644 index 0000000..b364ab7 --- /dev/null +++ b/talks/matlab_vs_python/partial_fourier/partial_fourier.m @@ -0,0 +1,32 @@ +%% Imports + +%% Load Data +h = matfile('data.mat'); +img = h.img; + +%% 6/8 Partial Fourier sampling +n = randn(96) + 1j*randn(96); +y = fftshift(fft2(img),1) + 0*n; +%y(73:end,:) = 0; + +%% Estimate phase +pad = padarray(hann(48),24); +phs = exp(1j*angle(ifft2(ifftshift(y.*pad,1)))); + +%% POCS reconstruction +est = zeros(96); +iters = 10; +for i = 1:iters + est = fftshift(fft2(est.*phs),1); + est(1:72,:) = y(1:72,:); + est = max(real(ifft2(ifftshift(est,1)).*conj(phs)),0); +end + +%% Plot reconstruction +figure(); +subplot(1,2,1); +imshow(abs(ifft2(ifftshift(y,1))),[0 1],'colormap',jet); +title('Zero-Filled'); +subplot(1,2,2); +imshow(est,[0 1],'colormap',jet); +title('POCS recon'); \ No newline at end of file diff --git a/talks/matlab_vs_python/partial_fourier/partial_fourier.py b/talks/matlab_vs_python/partial_fourier/partial_fourier.py new file mode 100644 index 0000000..2ceb7ec --- /dev/null +++ b/talks/matlab_vs_python/partial_fourier/partial_fourier.py @@ -0,0 +1,32 @@ +#%% Imports +import h5py +import matplotlib.pyplot as plt +import numpy as np + +#%% Load Data +h = h5py.File('data.mat','r') +img = np.transpose(h.get('img')['real']+1j*h.get('img')['imag']) + +#%% 6/8 Partial Fourier sampling +n = np.random.randn(96,96) + 1j*np.random.randn(96,96) +y = np.fft.fftshift(np.fft.fft2(img),axes=0) + n +y[72:,:] = 0 + +#%% Estimate phase +pad = np.pad(np.hanning(48),24,'constant')[:,None] +phs = np.exp(1j*np.angle(np.fft.ifft2(np.fft.ifftshift(y*pad,axes=0)))) + +#%% POCS reconstruction +est = np.zeros((96,96)) +iters = 10 +for i in range(iters): + est = np.fft.fftshift(np.fft.fft2(est*phs),axes=0) + est[:72,:] = y[:72,:] + est = np.maximum(np.real(np.fft.ifft2(np.fft.ifftshift(est,axes=0))*np.conj(phs)),0) + +#%% Plot reconstruction +_, ax = plt.subplots(1,2) +ax[0].imshow(np.abs(np.fft.ifft2(np.fft.ifftshift(y,axes=0))),vmin=0,vmax=1) +ax[0].set_title('Zero-filled') +ax[1].imshow(est, vmin=0, vmax=1) +ax[1].set_title('POCS recon') \ No newline at end of file -- GitLab