v04-din+IIR_out to compare with verdi
This commit is contained in:
		
							parent
							
								
									fda936e228
								
							
						
					
					
						commit
						9f61ed8b68
					
				|  | @ -1,36 +1,49 @@ | ||||||
| %2024-11-09-verify IIR IP core | %2024-11-09-verify IIR IP core | ||||||
| clc;clear;close all | clc;clear;close all | ||||||
| 
 | 
 | ||||||
| in = importdata("/home/thfu/work/TailCorr/sim/in.dat"); | in         = importdata("/home/thfu/work/TailCorr/sim/in.dat");        | ||||||
| diff_in = importdata("/home/thfu/work/TailCorr/sim/diff_in.dat"); | diff_in    = importdata("/home/thfu/work/TailCorr/sim/diff_in.dat");   | ||||||
| wave_verdi = importdata("/home/thfu/work/TailCorr/sim/OrgOut.dat");    | wave_verdi = importdata("/home/thfu/work/TailCorr/sim/OrgOut.dat");    | ||||||
| 
 | 
 | ||||||
| % imp = [2^15-1; zeros(499,1)]; | dout0 = importdata("/home/thfu/work/TailCorr/sim/dout0.dat");   | ||||||
| A = [0.025 0.015 0.0002]; | dout1 = importdata("/home/thfu/work/TailCorr/sim/dout1.dat"); | ||||||
| tau = -[1/250 1/650 1/1600]; | dout2 = importdata("/home/thfu/work/TailCorr/sim/dout2.dat"); | ||||||
| fs = 2e9; | dout3 = importdata("/home/thfu/work/TailCorr/sim/dout3.dat"); | ||||||
| 
 | 
 | ||||||
| for i = 1:3 | N = length(dout0); | ||||||
|  | cs_wave = zeros(4*N,1); | ||||||
|  | cs_wave(1:4:4*N) = dout0; | ||||||
|  | cs_wave(2:4:4*N) = dout1; | ||||||
|  | cs_wave(3:4:4*N) = dout2; | ||||||
|  | cs_wave(4:4:4*N) = dout3; | ||||||
|  | 
 | ||||||
|  | A   =  [0.025 0.015 0.0002 0.2]; | ||||||
|  | tau = -[1/250 1/650 1/1600 1/20]; | ||||||
|  | fs  = 0.375e9; | ||||||
|  | 
 | ||||||
|  | coef_len = length(A); | ||||||
|  | for i = 1:coef_len | ||||||
|     b(i) = exp(1e9/fs/(1-A(i))*tau(i)); |     b(i) = exp(1e9/fs/(1-A(i))*tau(i)); | ||||||
|     a(i) = A(i)/1/(1-A(i))*exp(1e9/fs/(1-A(i))/2*tau(i));   |     a(i) = A(i)/1/(1-A(i))*exp(1e9/fs/(1-A(i))/2*tau(i));   | ||||||
| end |  | ||||||
| 
 |  | ||||||
| 
 |  | ||||||
| for i = 1:3 |  | ||||||
|     h_ideal(:,i) = filter(a(i),[1 -b(i)],diff_in); |     h_ideal(:,i) = filter(a(i),[1 -b(i)],diff_in); | ||||||
| end | end | ||||||
| 
 | 
 | ||||||
| wave_float = in+ sum(h_ideal,2); | wave_float = in+ sum(h_ideal,2); | ||||||
| [wave_float_A,wave_verdi_A] = alignsignals(wave_float,wave_verdi); |  | ||||||
| N = min(length(wave_float_A),length(wave_verdi_A)); |  | ||||||
| figure() |  | ||||||
| diff_plot(wave_float_A, wave_verdi_A,'float','verdi',[0 N]); |  | ||||||
| 
 | 
 | ||||||
|  | wave_float_len = length(wave_float); | ||||||
|  | wave_float_8 = interp1(1:wave_float_len,wave_float,1:1/8:(wave_float_len+1-1/8),'linear')'; | ||||||
|  | 
 | ||||||
|  | [cs_wave_A,wave_float_8_A,Delay] = alignsignals(cs_wave,wave_float_8); | ||||||
|  | N = min(length(wave_float_8_A),length(cs_wave_A)); | ||||||
|  | figure(2) | ||||||
|  | diff_plot(wave_float_8_A(18:end), cs_wave_A(82:end),'float','verdi',[0 N]); | ||||||
| %% | %% | ||||||
| % signalAnalyzer(h_ideal_A*2^20,out_A,'SampleRate',1); | [wave_float_A,wave_verdi_A,Delay] = alignsignals(wave_float,wave_verdi); | ||||||
| % signalAnalyzer(h_ideal_A,floor(out_A/2^20),'SampleRate',1); | N = min(length(wave_float_A),length(wave_verdi_A)); | ||||||
| signalAnalyzer(wave_float_A,wave_verdi_A,'SampleRate',1); | figure(1) | ||||||
| % signalAnalyzer((h_ideal_A(1:N)-out_A(1:N))/2^35,'SampleRate',1); | diff_plot(wave_float_A, wave_verdi_A,'float','verdi',[0 N]); | ||||||
|  | %% | ||||||
|  | signalAnalyzer(wave_float,wave_verdi,'SampleRate',1); | ||||||
| %% | %% | ||||||
| fprintf("a is %.10f\n",a) | fprintf("a is %.10f\n",a) | ||||||
| fprintf("b is %.10f\n",b) | fprintf("b is %.10f\n",b) | ||||||
|  |  | ||||||
|  | @ -6,7 +6,8 @@ Script_out = Script_out(1:N); | ||||||
| n = 0:1:N-1; | n = 0:1:N-1; | ||||||
| diff = iir_out-Script_out; | diff = iir_out-Script_out; | ||||||
| 
 | 
 | ||||||
| subplot(211) | tiledlayout(2,1) | ||||||
|  | ax1 = nexttile; | ||||||
| plot(n,iir_out,n,Script_out) | plot(n,iir_out,n,Script_out) | ||||||
| xlabel('n') | xlabel('n') | ||||||
| legend(leg1,leg2) | legend(leg1,leg2) | ||||||
|  | @ -14,14 +15,14 @@ xlim(a) | ||||||
| title('time domain') | title('time domain') | ||||||
| grid on | grid on | ||||||
| 
 | 
 | ||||||
| subplot(212) | ax2 = nexttile; | ||||||
| plot(n,diff) | plot(n,diff) | ||||||
| xlabel('n') | xlabel('n') | ||||||
| title('diff') | title('diff') | ||||||
| grid on | grid on | ||||||
| hold on | hold on | ||||||
| xlim(a) | xlim(a) | ||||||
| 
 | linkaxes([ax1,ax2],'x'); | ||||||
| [diff_max,R_mpos] = max(abs(diff)); | [diff_max,R_mpos] = max(abs(diff)); | ||||||
| plot(n(R_mpos),diff(R_mpos),'r*') | plot(n(R_mpos),diff(R_mpos),'r*') | ||||||
| text(n(R_mpos), diff(R_mpos), ['(',num2str(n(R_mpos)),',',num2str(diff(R_mpos)),')'],'color','k'); | text(n(R_mpos), diff(R_mpos), ['(',num2str(n(R_mpos)),',',num2str(diff(R_mpos)),')'],'color','k'); | ||||||
|  |  | ||||||
		Loading…
	
		Reference in New Issue