64 lines
2.7 KiB
Mathematica
64 lines
2.7 KiB
Mathematica
|
%%%2024-10-15
|
||
|
%%%verification 8 linear interpolation result by comparing matlab and verilog result
|
||
|
clc;clear;close all
|
||
|
|
||
|
cd('/data/work/thfu/TailCorr/script_m');
|
||
|
|
||
|
sel_double = 0;
|
||
|
|
||
|
switch sel_double
|
||
|
|
||
|
case 0
|
||
|
iir_in_verilog = int64(importdata("/home/thfu/work/TailCorr/sim/in.dat") - 32768);
|
||
|
% iir_out_x1 = int64(importdata("/home/thfu/work/TailCorr/sim/X1_data.dat") -32768);
|
||
|
% iir_out_x2 = int64(importdata("/home/thfu/work/TailCorr/sim/X2_data.dat") -32768);
|
||
|
% iir_out_x4 = int64(importdata("/home/thfu/work/TailCorr/sim/X4_data.dat") -32768);
|
||
|
iir_out_verilog_x8 = int64(importdata("/home/thfu/work/TailCorr/sim/X8_data.dat") -32768);
|
||
|
|
||
|
case 1
|
||
|
iir_in = double(importdata("/home/thfu/work/TailCorr/sim/in") + 0);
|
||
|
iir_out_x1 = double(importdata("/home/thfu/work/TailCorr/sim/X1_data.dat") - 32768);
|
||
|
iir_out_x2 = double(importdata("/home/thfu/work/TailCorr/sim/X2_data.dat") - 32768);
|
||
|
iir_out_x4 = double(importdata("/home/thfu/work/TailCorr/sim/X4_data.dat") - 32768);
|
||
|
iir_out_x8 = double(importdata("/home/thfu/work/TailCorr/sim/X8_data.dat") - 32768);
|
||
|
|
||
|
end
|
||
|
% iir_out_x1 = [iir_out_x1' zeros(1,2)]';
|
||
|
% iir_out_x2 = [iir_out_x2' zeros(1,3)]';
|
||
|
% iir_out_x4 = [iir_out_x4' zeros(1,6)]';
|
||
|
|
||
|
alpha = [1757225200, 1045400392, 13740916];
|
||
|
beta = -[1042856 1046395 1047703];
|
||
|
|
||
|
|
||
|
Ystart = 0;
|
||
|
|
||
|
y_revised_matlab = TailCorr(alpha,beta,iir_in_verilog,Ystart,sel_double);
|
||
|
|
||
|
N = length(y_revised_matlab);
|
||
|
x1 = (1:1:N)';
|
||
|
x8 = (1:1/8:N+1-1/8)';
|
||
|
y_revised_intp8_matlab = int64(interp1(x1,double(y_revised_matlab),x8,'linear'));
|
||
|
|
||
|
|
||
|
%%%
|
||
|
%tau0 = finddelay(y_revised_matlab,iir_out_x1);
|
||
|
%y_revisedPhi0 = cat(1,zeros(1,tau0)',y_revised_matlab(1:end-tau0,1));
|
||
|
%figure('Units','normalized','Position',[0.500390625,0.517361111111111,0.49921875,0.422916666666667]);
|
||
|
%diff_plot(iir_out_x1, y_revisedPhi0,'verdi','matlab',[200 N]);
|
||
|
%%%
|
||
|
%tau2 = finddelay(s_intp2,iir_out_x2);
|
||
|
%y_revisedPhi2 = cat(1,zeros(1,tau2)',s_intp2(1:end-tau2,1));
|
||
|
%figure('Units','normalized','Position',[0.500390625,0.517361111111111,0.49921875,0.422916666666667]);
|
||
|
%diff_plot(iir_out_x2, y_revisedPhi2,'verdi','matlab',[0 4e4])
|
||
|
%%%
|
||
|
%tau4 = finddelay(s_intp4,iir_out_x4);
|
||
|
%y_revisedPhi4 = cat(1,zeros(1,tau4)',s_intp4(1:end-tau4,1));
|
||
|
%figure('Units','normalized','Position',[0.000390625,0.034027777777778,0.49921875,0.422916666666667]);
|
||
|
%diff_plot(iir_out_x4, y_revisedPhi4,'verdi','matlab',[0 8e4])
|
||
|
%%%
|
||
|
tau8 = finddelay(y_revised_intp8_matlab,iir_out_verilog_x8);
|
||
|
y_revisedPhi8 = cat(1,zeros(1,tau8)',y_revised_intp8_matlab(1:end-tau8,1));
|
||
|
figure('Units','normalized','Position',[0.000390625,0.517361111111111,0.49921875,0.422916666666667]);
|
||
|
diff_plot(iir_out_verilog_x8, y_revisedPhi8,'verdi','matlab',[400 800]);
|