diff --git a/codegen_fracFdpw/TBc_fracFdpwLFM.m b/codegen_fracFdpw/TBc_fracFdpwLFM.m
new file mode 100644
index 0000000..8916a6d
--- /dev/null
+++ b/codegen_fracFdpw/TBc_fracFdpwLFM.m
@@ -0,0 +1,149 @@
+%% Test fracF_dpw using a physical LFM
+%
+% Parameters chosen to match previous FrFT validation work:
+%
+% Fs = 512 MHz
+% T = 1 us
+% B = 64 MHz
+%
+% Matched FrFT order:
+%
+% a = -(2/pi)*atan(Fs/(beta*T))
+%
+% where:
+%
+% beta = B/T
+%
+% Notes:
+% - FFT is computed on the original (non-interpolated) signal.
+% - FrFT is computed on the interpolated signal.
+% - Power spectra are averaged across the entire DPW.
+
+clear
+clc
+close all
+
+%% Signal parameters
+
+N = 512;
+Nframes = 64;
+
+Fs = single(512e6);
+T = single(1e-6);
+
+B = single(64e6);
+beta = B/T;
+
+%% Time axis
+
+t = single((-N/2:N/2-1).') / Fs;
+
+%% Generate LFM
+
+x = exp(1j*pi*beta*(t.^2));
+
+x = complex(single(real(x)), ...
+ single(imag(x)));
+
+%% Create DPW
+
+X = repmat(x,1,Nframes);
+
+%% Interpolate exactly as Simulink
+
+halfbandInterp = dsp.FIRHalfbandInterpolator;
+
+Xint = halfbandInterp(X);
+
+%% Matched FrFT order
+
+aMatch = single(-(2/pi)*atan(Fs/(beta*T)));
+
+fprintf('\n');
+fprintf('Fs = %.3f MHz\n',double(Fs)/1e6);
+fprintf('T = %.3f us\n',double(T)*1e6);
+fprintf('B = %.3f MHz\n',double(B)/1e6);
+fprintf('aMatch = %.6f\n',double(aMatch));
+
+%% FFT reference
+%
+% FFT detector operates on the original non-interpolated signal.
+
+FFTref = fftshift(fft(X,[],1),1)/N;
+
+%% FrFT
+%
+% FrFT detector operates on the interpolated signal.
+
+[Achirp,H,Cchirp,Aa] = fracF_init(aMatch);
+
+Ffrft = fracF_dpw( ...
+ Xint,...
+ Achirp,...
+ H,...
+ Cchirp,...
+ Aa);
+
+%% Mean power spectrum across the DPW
+
+Pfft = mean(abs(FFTref).^2,2);
+
+Pfrft = mean(abs(Ffrft).^2,2);
+
+%% Peak comparison
+
+peakFFT = max(Pfft);
+peakFrFT = max(Pfrft);
+
+gain_dB = 10*log10(double(peakFrFT/peakFFT));
+
+fprintf('\n');
+fprintf('FFT peak power : %.6f\n',double(peakFFT));
+fprintf('FrFT peak power : %.6f\n',double(peakFrFT));
+fprintf('Processing gain : %.3f dB\n',gain_dB);
+
+%% Normalize spectra for display
+
+Pfft_dB = 10*log10(Pfft/max(Pfft));
+
+Pfrft_dB = 10*log10(Pfrft/max(Pfrft));
+
+%% Display averaged spectra
+
+figure
+
+subplot(2,1,1)
+
+plot(Pfft_dB)
+
+grid on
+
+ylim([-60 5])
+
+title('FFT Mean Power Spectrum')
+xlabel('FFT Bin')
+ylabel('Power (dB)')
+
+subplot(2,1,2)
+
+plot(Pfrft_dB)
+
+grid on
+
+ylim([-60 5])
+
+title(sprintf('FrFT Mean Power Spectrum (a = %.6f)', ...
+ double(aMatch)))
+
+xlabel('FrFT Bin')
+ylabel('Power (dB)')
+
+%% Report peak locations
+
+[~,idxFFT] = max(Pfft);
+[~,idxFrFT] = max(Pfrft);
+
+fprintf('\n');
+fprintf('FFT peak bin : %d\n',idxFFT);
+fprintf('FrFT peak bin : %d\n',idxFrFT);
+fprintf('\n');
\ No newline at end of file
diff --git a/codegen_fracFdpw/TBc_fracFdpw.m b/codegen_fracFdpw/TBc_fracFdpwNO.m
similarity index 98%
rename from codegen_fracFdpw/TBc_fracFdpw.m
rename to codegen_fracFdpw/TBc_fracFdpwNO.m
index 6372e6a..9a9f5e8 100644
--- a/codegen_fracFdpw/TBc_fracFdpw.m
+++ b/codegen_fracFdpw/TBc_fracFdpwNO.m
@@ -12,7 +12,7 @@ clc
%% Test parameters
-a = single(0.999);
+a = single(1);
N = 1024;
Nframes = 1024;
diff --git a/codegen_fracFdpw/TBm_fracFdpw.slx b/codegen_fracFdpw/TBm_fracFdpw.slx
index 72a2bce..6c8435b 100644
Binary files a/codegen_fracFdpw/TBm_fracFdpw.slx and b/codegen_fracFdpw/TBm_fracFdpw.slx differ
diff --git a/resources/project/SDMLmaWG7GHkKoV_kJ80kV-luys/rFgbE7J0q1IfyjFFVSXP14Sbh30d.xml b/resources/project/SDMLmaWG7GHkKoV_kJ80kV-luys/Doi5RFBzLXa6WtYn0DqckQqKRLQd.xml
similarity index 100%
rename from resources/project/SDMLmaWG7GHkKoV_kJ80kV-luys/rFgbE7J0q1IfyjFFVSXP14Sbh30d.xml
rename to resources/project/SDMLmaWG7GHkKoV_kJ80kV-luys/Doi5RFBzLXa6WtYn0DqckQqKRLQd.xml
diff --git a/resources/project/SDMLmaWG7GHkKoV_kJ80kV-luys/Doi5RFBzLXa6WtYn0DqckQqKRLQp.xml b/resources/project/SDMLmaWG7GHkKoV_kJ80kV-luys/Doi5RFBzLXa6WtYn0DqckQqKRLQp.xml
new file mode 100644
index 0000000..2101a2e
--- /dev/null
+++ b/resources/project/SDMLmaWG7GHkKoV_kJ80kV-luys/Doi5RFBzLXa6WtYn0DqckQqKRLQp.xml
@@ -0,0 +1,2 @@
+
+
\ No newline at end of file
diff --git a/resources/project/SDMLmaWG7GHkKoV_kJ80kV-luys/rEvooC0-TWPmhyjb2otHax51pGId.xml b/resources/project/SDMLmaWG7GHkKoV_kJ80kV-luys/rEvooC0-TWPmhyjb2otHax51pGId.xml
new file mode 100644
index 0000000..99772b4
--- /dev/null
+++ b/resources/project/SDMLmaWG7GHkKoV_kJ80kV-luys/rEvooC0-TWPmhyjb2otHax51pGId.xml
@@ -0,0 +1,6 @@
+
+
+
+
+
+
\ No newline at end of file
diff --git a/resources/project/SDMLmaWG7GHkKoV_kJ80kV-luys/rEvooC0-TWPmhyjb2otHax51pGIp.xml b/resources/project/SDMLmaWG7GHkKoV_kJ80kV-luys/rEvooC0-TWPmhyjb2otHax51pGIp.xml
new file mode 100644
index 0000000..bffe9bf
--- /dev/null
+++ b/resources/project/SDMLmaWG7GHkKoV_kJ80kV-luys/rEvooC0-TWPmhyjb2otHax51pGIp.xml
@@ -0,0 +1,2 @@
+
+
\ No newline at end of file
diff --git a/resources/project/SDMLmaWG7GHkKoV_kJ80kV-luys/rFgbE7J0q1IfyjFFVSXP14Sbh30p.xml b/resources/project/SDMLmaWG7GHkKoV_kJ80kV-luys/rFgbE7J0q1IfyjFFVSXP14Sbh30p.xml
deleted file mode 100644
index 045e936..0000000
--- a/resources/project/SDMLmaWG7GHkKoV_kJ80kV-luys/rFgbE7J0q1IfyjFFVSXP14Sbh30p.xml
+++ /dev/null
@@ -1,2 +0,0 @@
-
-
\ No newline at end of file