diff --git a/codegen_fracFdpw/TBc_fracFdpw.m b/codegen_fracFdpw/TBc_fracFdpw.m
new file mode 100644
index 0000000..78e05c3
--- /dev/null
+++ b/codegen_fracFdpw/TBc_fracFdpw.m
@@ -0,0 +1,20 @@
+a = single(1);
+
+[Achirp,AchirpOut,H,scale] = fracF_init(a);
+
+X = complex(randn(1024,1024,'single'), ...
+ randn(1024,1024,'single'));
+
+Fdpw = fracF_dpw(X,...
+ Achirp,...
+ AchirpOut,...
+ H,...
+ scale);
+
+Fref = complex(zeros(512,64,'single'));
+
+for k = 1:1024
+ Fref(:,k) = fracF_cg(X(:,k),a);
+end
+
+maxErr = max(abs(Fdpw(:)-Fref(:)))
\ No newline at end of file
diff --git a/codegen_fracFdpw/TBm_fracFdpw.slx b/codegen_fracFdpw/TBm_fracFdpw.slx
new file mode 100644
index 0000000..11dc8b8
Binary files /dev/null and b/codegen_fracFdpw/TBm_fracFdpw.slx differ
diff --git a/codegen_fracFdpw/fracF_dpw.m b/codegen_fracFdpw/fracF_dpw.m
new file mode 100644
index 0000000..0c3a425
--- /dev/null
+++ b/codegen_fracFdpw/fracF_dpw.m
@@ -0,0 +1,51 @@
+function F = fracF_dpw(f,...
+ Achirp,...
+ AchirpOut,...
+ H,...
+ scale)
+%#codegen
+%
+% fracF_dpw
+%
+% Matrix FrFT processing for an entire DPW.
+%
+% INPUT:
+% f [1024 x Nframes] complex(single)
+% Achirp [1024 x 1]
+% AchirpOut [512 x 1]
+% H [2048 x 1]
+% scale scalar
+%
+% OUTPUT:
+% F [512 x Nframes]
+
+N = 1024;
+Nfft = 2048;
+
+Nframes = size(f,2);
+
+%% First chirp multiplication
+
+g = f .* Achirp;
+
+%% Zero-padding
+
+g_pad = complex(zeros(Nfft,Nframes,'single'));
+
+g_pad(1:N,:) = g;
+
+%% FFT convolution
+
+Gfft = fft(g_pad);
+
+G = ifft(Gfft .* H);
+
+%% Extract valid region and decimate
+
+G_valid = G(N+1:2:end,:);
+
+%% Final chirp multiplication
+
+F = scale .* G_valid .* AchirpOut;
+
+end
\ No newline at end of file
diff --git a/codegen_fracFdpw/fracF_init.m b/codegen_fracFdpw/fracF_init.m
new file mode 100644
index 0000000..3b90a03
--- /dev/null
+++ b/codegen_fracFdpw/fracF_init.m
@@ -0,0 +1,70 @@
+function [Achirp,AchirpOut,H,scale] = fracF_init(a)
+%#codegen
+%
+% fracF_init
+%
+% Precompute FrFT coefficients for DPW processing.
+%
+% INPUT:
+% a - FrFT order (single)
+%
+% OUTPUTS:
+% Achirp [1024 x 1]
+% AchirpOut [512 x 1]
+% H [2048 x 1]
+% scale scalar
+
+N = 1024;
+
+pi_s = single(pi);
+
+phi = a * (pi_s/2);
+
+tan_half_phi = tan(phi/2);
+sin_phi = sin(phi);
+cos_phi = cos(phi);
+
+csc_phi = 1/sin_phi;
+cot_phi = cos_phi/sin_phi;
+
+twoDelta = 2*sqrt(single(N)/2);
+
+%% Chirp A
+
+n = single((-N/2:N/2-1).') / twoDelta;
+
+Achirp = exp(-1j*pi_s*(n.^2)*tan_half_phi);
+
+%% Chirp B
+
+m = single((-N:N-1).') / twoDelta;
+
+Bchirp = exp(1j*pi_s*csc_phi*(m.^2));
+
+%% FFT of Chirp B
+
+H = fft(Bchirp);
+
+%% Output chirp
+
+AchirpOut = Achirp(1:2:end);
+
+%% Scale factor
+
+scale = sqrt(1 - 1j*cot_phi) / twoDelta;
+
+%% Force single precision complex
+
+Achirp = complex(single(real(Achirp)), ...
+ single(imag(Achirp)));
+
+AchirpOut = complex(single(real(AchirpOut)), ...
+ single(imag(AchirpOut)));
+
+H = complex(single(real(H)), ...
+ single(imag(H)));
+
+scale = complex(single(real(scale)), ...
+ single(imag(scale)));
+
+end
\ No newline at end of file
diff --git a/resources/project/EEtUlUb-dLAdf0KpMVivaUlztwA/0W-QdLjPl5JXWY5WJJ8XuZdPRxsd.xml b/resources/project/EEtUlUb-dLAdf0KpMVivaUlztwA/0W-QdLjPl5JXWY5WJJ8XuZdPRxsd.xml
new file mode 100644
index 0000000..49737c5
--- /dev/null
+++ b/resources/project/EEtUlUb-dLAdf0KpMVivaUlztwA/0W-QdLjPl5JXWY5WJJ8XuZdPRxsd.xml
@@ -0,0 +1,2 @@
+
+
\ No newline at end of file
diff --git a/resources/project/EEtUlUb-dLAdf0KpMVivaUlztwA/0W-QdLjPl5JXWY5WJJ8XuZdPRxsp.xml b/resources/project/EEtUlUb-dLAdf0KpMVivaUlztwA/0W-QdLjPl5JXWY5WJJ8XuZdPRxsp.xml
new file mode 100644
index 0000000..32216e7
--- /dev/null
+++ b/resources/project/EEtUlUb-dLAdf0KpMVivaUlztwA/0W-QdLjPl5JXWY5WJJ8XuZdPRxsp.xml
@@ -0,0 +1,2 @@
+
+
\ No newline at end of file
diff --git a/resources/project/SDMLmaWG7GHkKoV_kJ80kV-luys/1X5PSVWg8jp3h1SyNiJtJmD4jnQd.xml b/resources/project/SDMLmaWG7GHkKoV_kJ80kV-luys/1X5PSVWg8jp3h1SyNiJtJmD4jnQd.xml
new file mode 100644
index 0000000..99772b4
--- /dev/null
+++ b/resources/project/SDMLmaWG7GHkKoV_kJ80kV-luys/1X5PSVWg8jp3h1SyNiJtJmD4jnQd.xml
@@ -0,0 +1,6 @@
+
+
+
+
+
+
\ No newline at end of file
diff --git a/resources/project/SDMLmaWG7GHkKoV_kJ80kV-luys/1X5PSVWg8jp3h1SyNiJtJmD4jnQp.xml b/resources/project/SDMLmaWG7GHkKoV_kJ80kV-luys/1X5PSVWg8jp3h1SyNiJtJmD4jnQp.xml
new file mode 100644
index 0000000..0e2ec36
--- /dev/null
+++ b/resources/project/SDMLmaWG7GHkKoV_kJ80kV-luys/1X5PSVWg8jp3h1SyNiJtJmD4jnQp.xml
@@ -0,0 +1,2 @@
+
+
\ No newline at end of file
diff --git a/resources/project/SDMLmaWG7GHkKoV_kJ80kV-luys/GIFBHwpY7Mj_mw96S-Wz-4P1djYd.xml b/resources/project/SDMLmaWG7GHkKoV_kJ80kV-luys/GIFBHwpY7Mj_mw96S-Wz-4P1djYd.xml
new file mode 100644
index 0000000..99772b4
--- /dev/null
+++ b/resources/project/SDMLmaWG7GHkKoV_kJ80kV-luys/GIFBHwpY7Mj_mw96S-Wz-4P1djYd.xml
@@ -0,0 +1,6 @@
+
+
+
+
+
+
\ No newline at end of file
diff --git a/resources/project/SDMLmaWG7GHkKoV_kJ80kV-luys/GIFBHwpY7Mj_mw96S-Wz-4P1djYp.xml b/resources/project/SDMLmaWG7GHkKoV_kJ80kV-luys/GIFBHwpY7Mj_mw96S-Wz-4P1djYp.xml
new file mode 100644
index 0000000..fc4d1ec
--- /dev/null
+++ b/resources/project/SDMLmaWG7GHkKoV_kJ80kV-luys/GIFBHwpY7Mj_mw96S-Wz-4P1djYp.xml
@@ -0,0 +1,2 @@
+
+
\ No newline at end of file
diff --git a/resources/project/SDMLmaWG7GHkKoV_kJ80kV-luys/VdNularF-Bizb3hmjaa7F00asGMd.xml b/resources/project/SDMLmaWG7GHkKoV_kJ80kV-luys/VdNularF-Bizb3hmjaa7F00asGMd.xml
new file mode 100644
index 0000000..4356a6a
--- /dev/null
+++ b/resources/project/SDMLmaWG7GHkKoV_kJ80kV-luys/VdNularF-Bizb3hmjaa7F00asGMd.xml
@@ -0,0 +1,2 @@
+
+
\ No newline at end of file
diff --git a/resources/project/SDMLmaWG7GHkKoV_kJ80kV-luys/VdNularF-Bizb3hmjaa7F00asGMp.xml b/resources/project/SDMLmaWG7GHkKoV_kJ80kV-luys/VdNularF-Bizb3hmjaa7F00asGMp.xml
new file mode 100644
index 0000000..01cb34e
--- /dev/null
+++ b/resources/project/SDMLmaWG7GHkKoV_kJ80kV-luys/VdNularF-Bizb3hmjaa7F00asGMp.xml
@@ -0,0 +1,2 @@
+
+
\ No newline at end of file
diff --git a/resources/project/SDMLmaWG7GHkKoV_kJ80kV-luys/_GBXjYOPGNzpaGXZHNU9eBKs2y4d.xml b/resources/project/SDMLmaWG7GHkKoV_kJ80kV-luys/_GBXjYOPGNzpaGXZHNU9eBKs2y4d.xml
new file mode 100644
index 0000000..99772b4
--- /dev/null
+++ b/resources/project/SDMLmaWG7GHkKoV_kJ80kV-luys/_GBXjYOPGNzpaGXZHNU9eBKs2y4d.xml
@@ -0,0 +1,6 @@
+
+
+
+
+
+
\ No newline at end of file
diff --git a/resources/project/SDMLmaWG7GHkKoV_kJ80kV-luys/_GBXjYOPGNzpaGXZHNU9eBKs2y4p.xml b/resources/project/SDMLmaWG7GHkKoV_kJ80kV-luys/_GBXjYOPGNzpaGXZHNU9eBKs2y4p.xml
new file mode 100644
index 0000000..cc70dc2
--- /dev/null
+++ b/resources/project/SDMLmaWG7GHkKoV_kJ80kV-luys/_GBXjYOPGNzpaGXZHNU9eBKs2y4p.xml
@@ -0,0 +1,2 @@
+
+
\ No newline at end of file
diff --git a/resources/project/SDMLmaWG7GHkKoV_kJ80kV-luys/rFgbE7J0q1IfyjFFVSXP14Sbh30d.xml b/resources/project/SDMLmaWG7GHkKoV_kJ80kV-luys/rFgbE7J0q1IfyjFFVSXP14Sbh30d.xml
new file mode 100644
index 0000000..99772b4
--- /dev/null
+++ b/resources/project/SDMLmaWG7GHkKoV_kJ80kV-luys/rFgbE7J0q1IfyjFFVSXP14Sbh30d.xml
@@ -0,0 +1,6 @@
+
+
+
+
+
+
\ No newline at end of file
diff --git a/resources/project/SDMLmaWG7GHkKoV_kJ80kV-luys/rFgbE7J0q1IfyjFFVSXP14Sbh30p.xml b/resources/project/SDMLmaWG7GHkKoV_kJ80kV-luys/rFgbE7J0q1IfyjFFVSXP14Sbh30p.xml
new file mode 100644
index 0000000..045e936
--- /dev/null
+++ b/resources/project/SDMLmaWG7GHkKoV_kJ80kV-luys/rFgbE7J0q1IfyjFFVSXP14Sbh30p.xml
@@ -0,0 +1,2 @@
+
+
\ No newline at end of file
diff --git a/resources/project/qaw0eS1zuuY1ar9TdPn1GMfrjbQ/SDMLmaWG7GHkKoV_kJ80kV-luysd.xml b/resources/project/qaw0eS1zuuY1ar9TdPn1GMfrjbQ/SDMLmaWG7GHkKoV_kJ80kV-luysd.xml
new file mode 100644
index 0000000..4356a6a
--- /dev/null
+++ b/resources/project/qaw0eS1zuuY1ar9TdPn1GMfrjbQ/SDMLmaWG7GHkKoV_kJ80kV-luysd.xml
@@ -0,0 +1,2 @@
+
+
\ No newline at end of file
diff --git a/resources/project/qaw0eS1zuuY1ar9TdPn1GMfrjbQ/SDMLmaWG7GHkKoV_kJ80kV-luysp.xml b/resources/project/qaw0eS1zuuY1ar9TdPn1GMfrjbQ/SDMLmaWG7GHkKoV_kJ80kV-luysp.xml
new file mode 100644
index 0000000..846fc2b
--- /dev/null
+++ b/resources/project/qaw0eS1zuuY1ar9TdPn1GMfrjbQ/SDMLmaWG7GHkKoV_kJ80kV-luysp.xml
@@ -0,0 +1,2 @@
+
+
\ No newline at end of file