Przeglądaj źródła

Отладка перегрузки коэффициентов

Anatoliy Chigirinskiy 1 rok temu
rodzic
commit
9eae6b9ef9

Plik diff jest za duży
+ 76 - 0
src/constrs/S5243Top.xdc


+ 63 - 32
src/src/FftDataFiltering/DecimFilterWrapper.v

@@ -22,7 +22,7 @@ module	DecimFilterWrapper
 #(	
 	parameter	AdcDataWidth		=	14,
 	parameter	N	=	8,
-	parameter	M	=	2,
+	parameter	M	=	1,
 	parameter	FilteredDataWidth	=	38,
 	parameter	FirOutDataWidth		=	48,
 	parameter	FirOutCutBit		=	42
@@ -37,6 +37,8 @@ module	DecimFilterWrapper
 	input	[24-1:0]	IfFtwH_i,
 	
 	input	signed	[AdcDataWidth-1:0]	AdcData_i,
+	input	signed	[AdcDataWidth-1:0]  DeltaPulse_i,
+	input	DeltaPulseValid_i,
 	
 	output	signed	[16-1:0]	FilteredAdcDataI_o,
 	output	signed	[16-1:0]	FilteredAdcDataQ_o,
@@ -88,10 +90,12 @@ module	DecimFilterWrapper
 	reg		[15:0]	outDataI;
 	reg		[15:0]	outDataQ;
 
-	reg 	[1:0] currState;
+(* DONT_TOUCH = "true" *)	reg 	[1:0] currState;
 	reg 	[1:0] nextState;
 
-	reg 	[2:0] decimFactorReg;
+(* DONT_TOUCH = "true" *)reg 	[2:0] decimFactorReg;
+(* DONT_TOUCH = "true" *)reg enReload;
+
 
 	reg		[3:0] coeffCnt;
 	reg		[4:0] delayCnt;
@@ -116,7 +120,7 @@ module	DecimFilterWrapper
 	localparam	CONFIG_STATE =  2'd3;		
 
 
-	localparam  DELAY_VALUE = 2*8-1;
+	localparam  DELAY_VALUE = 1;
 	
 	wire	[39:0]	firData;
 	wire	firDataVal;
@@ -125,7 +129,9 @@ module	DecimFilterWrapper
 //================================================================================
 
 	// assign	FilteredAdcDataI_o	=	outDataI;
-	assign	FilteredAdcDataI_o	=	firData[33-:16];
+	assign	FilteredAdcDataI_o	=	(DecimFactor_i == 3'd1 || DecimFactor_i == 3'd0 )? {{14{AdcData_i[AdcDataWidth-1]}},AdcData_i} :firData[33-:16];
+
+	// assign FilteredAdcDataI_o = (DecimFactor_i == 3'd0 || DecimFactor_i == 3'd1 ) ? ((firDataVal)? {AdcData_i,2'b0} : 16'h0 ) : firData[33-:16];
 
 	// assign	FilteredDataVal_o	=	decimDataValIR;
 	assign	FilteredDataVal_o	=	firDataVal;
@@ -148,6 +154,21 @@ always @(posedge Clk_i) begin
 		decimFactorReg <= DecimFactor_i;
 	end
 
+always @(posedge Clk_i) begin 
+	if (Rst_i) begin 
+		enReload <= 1'b0;
+	end
+	else begin 
+		if (decimFactorReg != DecimFactor_i && (DecimFactor_i != 0 && DecimFactor_i != 1)) begin 
+			enReload <= 1'b1;
+		end
+		else begin 
+			enReload <= 1'b0;
+		end
+	end
+end
+
+
 
 
 always	@(posedge	Clk_i)	begin
@@ -278,7 +299,7 @@ always @(posedge Clk_i) begin
 		if (currState == RECONFIG) begin 
 			coeffCnt <= coeffCnt + 1;
 		end
-		else begin 
+		else if (currState == IDLE) begin 
 			coeffCnt <= 4'd0;
 		end
 	end
@@ -320,33 +341,42 @@ always @(*) begin
     if (Rst_i) begin 
         nextState = IDLE;
     end
-    else begin 
-        case (currState)
-            IDLE: begin 
-                if (decimFactorReg != DecimFactor_i && axiReloadReady) begin 
-                    nextState = RECONFIG;
-                end
-            end
-			RECONFIG: begin 
-				if (coeffCnt == 4'd7) begin 
-					nextState = WAIT_READY;
-				end
-			end
-			WAIT_READY: begin
-				if (delayCnt == DELAY_VALUE) begin
-					nextState = CONFIG_STATE;
-				end
-			end
-			CONFIG_STATE: begin 
-					if (configCnt == 2) begin 
+    else begin
+		if (DecimFactor_i != 3'd0 && DecimFactor_i != 3'd1) begin
+        	case (currState)
+        	    IDLE: begin 
+        	        if (enReload && axiReloadReady) begin 
+        	            nextState = RECONFIG;
+        	        end
+					else begin 
 						nextState = IDLE;
 					end
-			end
-			default: begin
-				nextState = IDLE;
-			end
-        endcase
-    end
+        	    end
+				RECONFIG: begin 
+					if (coeffCnt == 4'd7) begin 
+						nextState = WAIT_READY;
+					end
+					else begin 
+						nextState = RECONFIG;
+					end
+				end
+				WAIT_READY: begin
+					if (delayCnt == DELAY_VALUE) begin
+						nextState = CONFIG_STATE;
+					end
+					else begin
+						nextState = WAIT_READY;
+					end
+				end
+				CONFIG_STATE: begin  
+					nextState = IDLE;
+				end
+        	endcase
+		end
+		else begin
+			nextState = IDLE;
+		end
+	end
 end
 
 
@@ -359,11 +389,12 @@ end
 
 
 
-
 ReloadCoeffRam ReloadCoeffRam (
 	.Clk_i			(Clk_i),
 	.Rst_i			(Rst_i),
 	.ReadEn_i		(axiReloadValid),
+	.CurrState_i	(currState),
+	.DecimFactor_i	(DecimFactor_i),
 	.Data_o			(axiReloadDataRam)
 
 

+ 89 - 32
src/src/FftDataFiltering/ReloadCoeffRam.v

@@ -1,54 +1,86 @@
 
 // `include "mem_init1.txt"
 // `include "mem_init2.txt"
+(* DONT_TOUCH = "true" *)
 module ReloadCoeffRam (
     input Clk_i,
     input Rst_i,
     input ReadEn_i,
+    input [2:0] DecimFactor_i,
+    input CurrState_i,
 
-    output signed [15:0] Data_o
-
-
-
-
-
+    output  signed [15:0] Data_o
 
 );
 
 
 
-integer m1;
-integer m2;
 
+reg [4:0] addr;
+reg signed [15:0] dataReg;
 
-assign Data_o = dataReg;
+(*rom_style = "block" *)reg signed [15:0] mem1 [7:0];//R = 2
+(*rom_style = "block" *)reg signed [15:0] mem2 [7:0];// R = 3
+(*rom_style = "block" *)reg signed [15:0] mem3 [7:0];// R= 4
+(*rom_style = "block" *)reg signed [15:0] mem4 [7:0];//R=5
+(*rom_style = "block" *)reg signed [15:0] mem5 [7:0];//R=6
+(*rom_style = "block" *)reg signed [15:0] mem6 [7:0];//R=7
+ 
 
 
+assign Data_o = dataReg;
 
-reg [4:0] addr;
-reg signed [15:0] dataReg;
 
-reg signed [15:0] mem1 [7:0];
-reg signed [15:0] mem2 [7:0];
- 
 
 initial begin 
-    // mem1[0] = -27;
-    // mem1[1] =615;
-    // mem1[2] = 1015;
-    // mem1[3] = -1512;
-    // mem1[4]  = -5803;
-    // mem1[5]  = -2223;
-    // mem1[6]  =  14818;
-    // mem1[7]  =  32767;
-    mem1[0]  =  -38;
-    mem1[1]  =  646;
-    mem1[2] =  1106;
-    mem1[3] =  -1507;
-    mem1[4] =  -6135;
-    mem1[5] =  -2817;
-    mem1[6] =  14421;
+    mem1[0] = -27;
+    mem1[1] = 615;
+    mem1[2] = 1015;
+    mem1[3] = -1512;
+    mem1[4] = -5803;
+    mem1[5] = -2223;
+    mem1[6] =  14818;
     mem1[7] =  32767;
+    mem2[0] =  -35;
+    mem2[1] =  638;
+    mem2[2] =  1083;
+    mem2[3] =  -1509;
+    mem2[4] =  -6052;
+    mem2[5] =  -2666;
+    mem2[6] =  14522;
+    mem2[7] =  32767; 
+    mem3[0] =  -38;
+    mem3[1] =  646;
+    mem3[2] =  1106;
+    mem3[3] =  -1507;
+    mem3[4] =  -6135;
+    mem3[5] =  -2817;
+    mem3[6] =  14421;
+    mem3[7] =  32767;
+    mem4[0] =  -39;
+    mem4[1] =  650;
+    mem4[2] =  1118;
+    mem4[3] =  -1506;
+    mem4[4] =  -6174;
+    mem4[5] =  -2887;
+    mem4[6] =  14374;
+    mem4[7] =  32767;
+    mem5[0] =  -40;
+    mem5[1] =  652;
+    mem5[2] =  1124;
+    mem5[3] =  -1505;
+    mem5[4] =  -6195;
+    mem5[5] =  -2925;
+    mem5[6] =  14348;
+    mem5[7] =  32767;
+    mem6[0] =  -40;
+    mem6[1] =  653;
+    mem6[2] =  1127;
+    mem6[3] =  -1504;
+    mem6[4] =  -6207;
+    mem6[5] =  -2948;
+    mem6[6] =  14333;
+    mem6[7] =  32767;
 end
 
 
@@ -72,9 +104,12 @@ always @(posedge Clk_i) begin
         addr <= 5'h0;
     end
     else begin 
-        if (ReadEn_i) begin 
+        if (ReadEn_i && CurrState_i == 2'd1 ) begin 
             addr <= addr + 1;
         end
+        else begin 
+            addr <= 5'h0;
+        end
     end
 end
 
@@ -83,8 +118,30 @@ always @(*) begin
         dataReg = 16'h0;
     end
     else begin 
-        if (ReadEn_i) begin 
-            dataReg = mem1[addr];
+        if (ReadEn_i) begin
+            case (DecimFactor_i) 
+            2 : begin
+                dataReg = mem1[addr];
+            end
+            3 : begin 
+                dataReg = mem2[addr];
+            end
+            4 : begin
+                dataReg = mem3[addr];
+            end
+            5 : begin
+                dataReg = mem4[addr];
+            end
+            6 : begin
+                dataReg = mem5[addr];
+            end
+            7 : begin
+                dataReg = mem6[addr];
+            end
+            default : begin 
+                dataReg = 16'h0;
+            end
+            endcase
         end
     end
 end

+ 16 - 5
src/src/FftDataFiltering/intFilterBlock.v

@@ -4,6 +4,7 @@ module intFilterBlock
 )
 (
 	input Clk_i,
+	input Rst_i,
 	input [inOutDataWidth-1:0] Data_i,
 	input DataNd_i,
 	output [filteredDataWidth-1:0] Data_o,
@@ -19,17 +20,27 @@ module intFilterBlock
 	reg signed [filteredDataWidth-1:0] sumResult;
 	
 	always	@(posedge	Clk_i)	begin
-		if (DataNd_i)	begin
-			inReg <= Data_i;
+		if (Rst_i) begin 
+			inReg <= 0;
+		end
+		else begin 
+			if (DataNd_i)	begin
+				inReg <= Data_i;
+			end
 		end
 	end
 	
 	always @ (posedge Clk_i)	begin
-		if (ndShReg[0])	begin
-			sumResult <= inReg + sumResult;
-		end	else	begin
+		if (Rst_i) begin 
 			sumResult <= 0;
 		end
+		else begin 
+			if (ndShReg[0])	begin
+				sumResult <= inReg + sumResult;
+			end	else	begin
+				sumResult <= 0;
+			end
+		end
 	end
 
 	assign Data_o = sumResult;

+ 1 - 0
src/src/FftDataFiltering/intFilterWrapper.v

@@ -24,6 +24,7 @@ module intFilterWrapper
 )
 (
 	input Clk_i,
+	input Rst_i,
 	input [inOutDataWidth-1:0] Data_i,
 	input DataNd_i,
 	output [inOutDataWidth-1:0] Data_o,

+ 17 - 17
src/src/Sim/CicTest.m

@@ -1,7 +1,7 @@
 FormatSpec = '%d';
 PointsNum = 500;
 N = 8;
-R = 2;
+R = 4;
 B = 14;
 M = 1;
 
@@ -73,22 +73,22 @@ ff = 0:1/NFFT:1-1/NFFT;
 Hcic = abs((sin(pi*M*R*NormFreqs) ./ sin(pi*NormFreqs))).^N;
 Hcicdb = 20 * log10(abs(Hcic));
 Hcicdb = Hcicdb - max(Hcicdb);
-##figure('name','Cic Response', 'Numbertitle', 'off')
-##plot(FreqsDecim, CicResp - max(CicResp), '-.', 'LineWidth', 2, 'Color',[0 0 1]);
-##
-##title([{'Cic Response'}]);
-##xlabel ('Freq (\pi x rad / samples)');
-##ylabel ('Magnitude');
-##axis tight;
-##grid on;
-##
-##figure('name','CicResp', 'Numbertitle', 'off')
-##  plot(NormFreqs, CicResp, 'LineWidth', 2, 'Color',[0 0 1]);
-##  hold on;
-##
-##figure('name','HCICdb Frequency Response', 'Numbertitle', 'off')
-##  plot(NormFreqs, Hcicdb, 'LineWidth', 2, 'Color',[0.2 0.5 0]);
-##  hold on;
+figure('name','Cic Response', 'Numbertitle', 'off')
+plot(FreqsDecim, CicResp - max(CicResp), '-.', 'LineWidth', 2, 'Color',[0 0 1]);
+
+title([{'Cic Response'}]);
+xlabel ('Freq (\pi x rad / samples)');
+ylabel ('Magnitude');
+axis tight;
+grid on;
+
+figure('name','CicResp', 'Numbertitle', 'off')
+  plot(NormFreqs, CicResp, 'LineWidth', 2, 'Color',[0 0 1]);
+  hold on;
+
+figure('name','HCICdb Frequency Response', 'Numbertitle', 'off')
+  plot(NormFreqs, Hcicdb, 'LineWidth', 2, 'Color',[0.2 0.5 0]);
+  hold on;
 
 figure('name','Resulting Frequency Response', 'Numbertitle', 'off')
 plot(FreqsDecim,20*log10(abs(FilteredDataFft)), 'LineWidth',2)

+ 10 - 6
src/src/Sim/DecimFilterWrapperTb.v

@@ -39,7 +39,9 @@ wire	signed	[13:0]	sinAdd	=	(ncoSin1>>>1)+(ncoSin2>>>1);
 wire	signed	[17:0]	wind;
 
 // wire	signed	[13:0]	singlePulse	=	(tbCnt>=4505&tbCnt<=4510)?	14'h1fff:14'h0;
-wire	signed	[13:0]	singlePulse	=	(tbCnt==4505)?	14'h1fff:14'h0;
+// wire	signed	[13:0]	singlePulse	=	(tbCnt==4505)?	14'h1fff:14'h0 || (tbCnt==5705)?	14'h1fff:14'h0;
+wire	signed	[15:0]	singlePulse	=	(tbCnt==4505)?	16'h7fff:14'h0 || (tbCnt==5705)?	16'h7fff:14'h0;
+wire  singlePulseValid = (tbCnt==4505)? 1'b1:1'b0 || (tbCnt==5705)? 1'b1:1'b0;
 //==========================================================================================
 //clocks gen
 always	#10 Clk50	=	~Clk50;
@@ -54,11 +56,11 @@ parameter	MaxWidth	=	38;
 initial begin
 	Clk50		=	1'b1;
 	Rst			=	1'b1;
-	decimFactor	=	3'd2;
+	decimFactor	=	3'd4;
 #100;
 	Rst		=	1'b0;
 	#105000;
-	decimFactor = 3'd1;
+	decimFactor = 3'd2;
 end	
 
 always	@(posedge	Clk50)	begin
@@ -104,7 +106,7 @@ ncoInst1
 	.Clk_i		(Clk50),
 	.Rst_i		(Rst),
 	.Val_i		(1'b1),
-	.PhaseInc_i	(32'h19999999),
+	.PhaseInc_i	(32'h51eb852),
 	.WindVal_i	(1'b1),
 	.WinType_i	(),
 	.Wind_o		(),
@@ -125,7 +127,7 @@ ncoInst2
 	.Clk_i		(Clk50),
 	.Rst_i		(Rst),
 	.Val_i		(1'b1),
-	.PhaseInc_i	(32'h3d70a3d7),
+	.PhaseInc_i	(32'h1999999a),
 	.WindVal_i	(1'b1),
 	.WinType_i	(),
 	.Wind_o		(),
@@ -154,8 +156,10 @@ DecimFilter
 	.IfFtwL_i		(24'h51eb85),
 	.IfFtwH_i		(24'h23),
 	
-	// .AdcData_i		(singlePulse),
 	.AdcData_i		(sinAdd),
+	.DeltaPulse_i	(singlePulse),
+	.DeltaPulseValid_i	(singlePulseValid),
+	// .AdcData_i		(sinAdd),
 	// .AdcData_i		(adcDataMixedCut),
 	
 	.FilteredAdcDataI_o	(resultI),

+ 360 - 571
src/src/Sim/FilteredData.txt

@@ -1,586 +1,375 @@
      0
      0
-    -1
-   -12
-   -26
-    16
-   146
-   159
-  -301
- -1127
- -1405
-  -396
-  1117
-  1367
-   -76
- -1410
-  -853
-   861
-  1388
-    -1
- -1391
-  -860
-   856
-  1388
-    -1
- -1390
-  -860
-   857
-  1387
-    -1
- -1390
-  -860
-   857
-  1387
+     0
+    -7
+   -43
+   -73
+    57
+   361
+   360
+  -677
+ -2775
+ -4787
+ -5205
+ -3446
+  -223
+  3188
+  5713
+  6741
+  6095
+  3954
+   840
+ -2478
+ -5189
+ -6612
+ -6403
+ -4610
+ -1675
+  1670
+  4605
+  6398
+  6607
+  5184
+  2474
+  -845
+ -3958
+ -6093
+ -6718
+ -5686
+ -3244
     -2
- -1391
-  -859
-   857
-  1388
-    -3
- -1391
-  -860
-   858
-  1388
-    -1
- -1391
-  -860
-   856
-  1388
-    -1
- -1390
-  -860
-   857
-  1387
-    -1
- -1390
-  -860
-   857
-  1387
+  3239
+  5681
+  6713
+  6088
+  3953
+   840
+ -2478
+ -5189
+ -6612
+ -6403
+ -4610
+ -1675
+  1670
+  4605
+  6398
+  6607
+  5184
+  2474
+  -845
+ -3958
+ -6093
+ -6718
+ -5686
+ -3244
     -2
- -1391
-  -859
-   857
-  1388
-    -3
- -1391
-  -860
-   858
-  1388
-    -1
- -1391
-  -860
-   856
-  1388
-    -1
- -1390
-  -860
-   857
-  1387
-    -1
- -1390
-  -860
-   857
-  1387
+  3239
+  5681
+  6713
+  6088
+  3953
+   840
+ -2478
+ -5189
+ -6612
+ -6403
+ -4610
+ -1675
+  1670
+  4605
+  6398
+  6607
+  5184
+  2474
+  -845
+ -3958
+ -6093
+ -6718
+ -5686
+ -3244
     -2
- -1391
-  -859
-   857
-  1388
-    -3
- -1391
-  -860
-   858
-  1388
-    -1
- -1391
-  -860
-   856
-  1388
-    -1
- -1390
-  -860
-   857
-  1387
-    -1
- -1390
-  -860
-   857
-  1387
+  3239
+  5681
+  6713
+  6088
+  3953
+   840
+ -2478
+ -5189
+ -6612
+ -6403
+ -4610
+ -1675
+  1670
+  4605
+  6398
+  6607
+  5184
+  2474
+  -845
+ -3958
+ -6093
+ -6718
+ -5686
+ -3244
     -2
- -1391
-  -859
-   857
-  1388
-    -3
- -1391
-  -860
-   858
-  1388
+  3239
+  5681
+  6713
+  6088
+  3953
+   840
+ -2478
+ -5189
+ -6612
+ -6403
+ -4612
+ -1643
+  1703
+  4500
+  6134
+  6646
+  6051
+  3814
+  -237
+ -4623
+ -7196
+ -7445
+ -6587
+ -5129
+ -2503
+   880
+  3280
+  3578
+  2418
+  1171
+   998
+  2356
+  4288
+  4788
+  3242
+  1489
+  1475
+  2500
+  2236
     -1
- -1391
-  -860
-   856
-  1388
+ -2239
+ -2503
+ -1478
+ -1492
+ -3245
+ -4795
+ -4211
+ -2229
+ -1240
+ -2006
+ -2646
+ -1288
+  1284
+  2643
+  2003
+  1237
+  2226
+  4207
+  4792
+  3242
+  1489
+  1475
+  2500
+  2236
     -1
- -1390
-  -860
-   857
-  1387
+ -2239
+ -2503
+ -1478
+ -1492
+ -3245
+ -4795
+ -4211
+ -2229
+ -1240
+ -2006
+ -2646
+ -1288
+  1284
+  2643
+  2003
+  1237
+  2226
+  4207
+  4792
+  3242
+  1489
+  1475
+  2500
+  2236
     -1
- -1390
-  -860
-   857
-  1387
-    -2
- -1391
-  -859
-   857
-  1388
-    -3
- -1391
-  -860
-   858
-  1388
-    -1
- -1391
-  -860
-   856
-  1388
+ -2239
+ -2503
+ -1478
+ -1492
+ -3245
+ -4795
+ -4211
+ -2229
+ -1240
+ -2006
+ -2646
+ -1288
+  1284
+  2643
+  2003
+  1237
+  2226
+  4207
+  4792
+  3242
+  1489
+  1475
+  2500
+  2236
     -1
- -1390
-  -860
-   857
-  1387
-    -1
- -1390
-  -860
-   857
-  1387
-    -2
- -1391
-  -859
-   857
-  1388
-    -3
- -1391
-  -860
-   858
-  1388
+ -2239
+ -2503
+ -1478
+ -1492
+ -3245
+ -4795
+ -4211
+ -2229
+ -1240
+ -2006
+ -2646
+ -1288
+  1284
+  2643
+  2003
+  1237
+  2226
+  4207
+  4792
+  3242
+  1489
+  1475
+  2500
+  2236
     -1
- -1391
-  -860
-   856
-  1388
-    -1
- -1390
-  -860
-   857
-  1387
-    -1
- -1390
-  -860
-   857
-  1387
-    -2
- -1391
-  -859
-   857
-  1388
-    -3
- -1391
-  -860
-   858
-  1388
+ -2239
+ -2503
+ -1478
+ -1492
+ -3245
+ -4795
+ -4211
+ -2229
+ -1240
+ -2006
+ -2646
+ -1288
+  1284
+  2643
+  2003
+  1237
+  2226
+  4207
+  4792
+  3242
+  1489
+  1475
+  2500
+  2236
     -1
- -1391
-  -860
-   856
-  1388
+ -2239
+ -2503
+ -1478
+ -1492
+ -3245
+ -4795
+ -4211
+ -2229
+ -1240
+ -2006
+ -2646
+ -1288
+  1284
+  2643
+  2003
+  1237
+  2226
+  4207
+  4792
+  3242
+  1489
+  1475
+  2500
+  2236
     -1
- -1390
-  -860
-   857
-  1387
-    -1
- -1390
-  -860
-   857
-  1387
-    -2
- -1391
-  -859
-   857
-  1388
-    -3
- -1391
-  -860
-   858
-  1388
-    -1
- -1391
-  -860
-   856
-  1388
-    -1
- -1390
-  -860
-   857
-  1387
-    -1
- -1390
-  -860
-   857
-  1387
-    -2
- -1391
-  -859
-   857
-  1388
-    -3
- -1391
-  -860
-   858
-  1388
+ -2239
+ -2503
+ -1478
+ -1492
+ -3245
+ -4795
+ -4211
+ -2229
+ -1240
+ -2006
+ -2646
+ -1288
+  1284
+  2643
+  2003
+  1237
+  2226
+  4207
+  4792
+  3242
+  1489
+  1475
+  2500
+  2236
     -1
- -1391
-  -860
-   856
-  1388
+ -2239
+ -2503
+ -1478
+ -1492
+ -3245
+ -4795
+ -4211
+ -2229
+ -1240
+ -2006
+ -2646
+ -1288
+  1284
+  2643
+  2003
+  1237
+  2226
+  4207
+  4792
+  3242
+  1489
+  1475
+  2500
+  2236
     -1
- -1439
-  -890
-   888
-  1527
-   108
- -1733
- -1718
-   908
-  4100
-  4463
-  1031
- -2566
- -1927
-  2629
-  6382
-  6030
-  2895
-   129
-  -882
-  -813
-  -484
-  -124
-   276
-   466
-   393
-   273
-   201
-   -35
-  -421
-  -581
-  -347
-   -25
-   128
-   254
-   464
-   496
-   158
-  -263
-  -407
-  -350
-  -332
-  -254
-    85
-   478
-   535
-   282
-    60
-   -61
-  -283
-  -537
-  -479
-   -86
-   253
-   331
-   349
-   405
-   262
-  -160
-  -498
-  -465
-  -256
-  -129
-    24
-   345
-   579
-   420
-    33
-  -203
-  -274
-  -394
-  -470
-  -227
-   226
-   469
-   393
-   273
-   201
-   -35
-  -421
-  -581
-  -347
-   -25
-   128
-   254
-   464
-   496
-   158
-  -263
-  -407
-  -350
-  -332
-  -254
-    85
-   478
-   535
-   282
-    60
-   -61
-  -283
-  -537
-  -479
-   -86
-   253
-   331
-   349
-   405
-   262
-  -160
-  -498
-  -465
-  -256
-  -129
-    24
-   345
-   579
-   420
-    33
-  -203
-  -274
-  -394
-  -470
-  -227
-   226
-   469
-   393
-   273
-   201
-   -35
-  -421
-  -581
-  -347
-   -25
-   128
-   254
-   464
-   496
-   158
-  -263
-  -407
-  -350
-  -332
-  -254
-    85
-   478
-   535
-   282
-    60
-   -61
-  -283
-  -537
-  -479
-   -86
-   253
-   331
-   349
-   405
-   262
-  -160
-  -498
-  -465
-  -256
-  -129
-    24
-   345
-   579
-   420
-    33
-  -203
-  -274
-  -394
-  -470
-  -227
-   226
-   469
-   393
-   273
-   201
-   -35
-  -421
-  -581
-  -347
-   -25
-   128
-   254
-   464
-   496
-   158
-  -263
-  -407
-  -350
-  -332
-  -254
-    85
-   478
-   535
-   282
-    60
-   -61
-  -283
-  -537
-  -479
-   -86
-   253
-   331
-   349
-   405
-   262
-  -160
-  -498
-  -465
-  -256
-  -129
-    24
-   345
-   579
-   420
-    33
-  -203
-  -274
-  -394
-  -470
-  -227
-   226
-   469
-   393
-   273
-   201
-   -35
-  -421
-  -581
-  -347
-   -25
-   128
-   254
-   464
-   496
-   158
-  -263
-  -407
-  -350
-  -332
-  -254
-    85
-   478
-   535
-   282
-    60
-   -61
-  -283
-  -537
-  -479
-   -86
-   253
-   331
-   349
-   405
-   262
-  -160
-  -498
-  -465
-  -256
-  -129
-    24
-   345
-   579
-   420
-    33
-  -203
-  -274
-  -394
-  -470
-  -227
-   226
-   469
-   393
-   273
-   201
-   -35
-  -421
-  -581
-  -347
-   -25
-   128
-   254
-   464
-   496
-   158
-  -263
-  -407
-  -350
-  -332
-  -254
-    85
-   478
-   535
-   282
-    60
-   -61
-  -283
-  -537
-  -479
-   -86
-   253
-   331
-   349
-   405
-   262
-  -160
-  -498
-  -465
-  -256
-  -129
-    24
-   345
-   579
-   420
-    33
-  -203
-  -274
-  -394
-  -470
-  -227
-   226
-   469
-   393
-   273
-   201
-   -35
-  -421
-  -581
-  -347
-   -25
-   128
-   254
-   464
- 
+ -2239
+ -2503
+ -1478
+ -1492
+ -3245
+ -4795
+ -4211
+ -2229
+ -1240
+ -2006
+ -2646
+ -1288
+  1284
+  2643
+  2003
+  1237
+  2226
+  4207
+  4792
+  3242

Plik diff jest za duży
+ 933 - 519
src/src/Sim/InputSignal.txt


+ 1 - 1
src/src/Sim/KapitanovScriptForCicComp.m

@@ -52,7 +52,7 @@ clear all;
 %  ---- CIC Filter Parameters
 %  ------------------------------------------------------------------------
 
-R = 4;         % Decimation factor
+R = 2;         % Decimation factor
 N = 8;         % Number of stages
 M = 1;         % Differential delay (only 1)
 

+ 14 - 14
src/src/Sim/fir_filter.coe

@@ -1,19 +1,19 @@
 Radix = 10;
 Coefficient_Width = 16;
 Coefdata =
--38,
-646,
-1106,
--1507,
--6135,
--2817,
-14421,
+-28,
+616,
+1016,
+-1514,
+-5812,
+-2237,
+14810,
 32767,
 32767,
-14421,
--2817,
--6135,
--1507,
-1106,
-646,
--38;
+14810,
+-2237,
+-5812,
+-1514,
+1016,
+616,
+-28;