diff --git a/Stuff/CIC_Filters/rx.m b/Stuff/CIC_Filters/rx.m
new file mode 100644
index 0000000..6e663f4
--- /dev/null
+++ b/Stuff/CIC_Filters/rx.m
@@ -0,0 +1,252 @@
+%% ------------------------------------------------------------------------
+%
+% Title : test_cic.m
+% Author : Alexander Kapitanov
+% E-mail : sallador@bk.ru
+% Version : 1.0
+%
+% -------------------------------------------------------------------------
+%
+% Description :
+%
+% FIR filter compensator to correct freq response after CIC filter.
+%
+% -------------------------------------------------------------------------
+%
+% Version : 1.0
+% Date : 2017.06.03
+%
+%% ------------------------------------------------------------------------
+%
+% GNU GENERAL PUBLIC LICENSE
+% Version 3, 29 June 2007
+%
+% Copyright (c) 2018 Kapitanov Alexander
+%
+% This program is free software: you can redistribute it and/or modify
+% it under the terms of the GNU General Public License as published by
+% the Free Software Foundation, either version 3 of the License, or
+% (at your option) any later version.
+%
+% You should have received a copy of the GNU General Public License
+% along with this program. If not, see .
+%
+% THERE IS NO WARRANTY FOR THE PROGRAM, TO THE EXTENT PERMITTED BY
+% APPLICABLE LAW. EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT
+% HOLDERS AND/OR OTHER PARTIES PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY
+% OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO,
+% THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+% PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE PROGRAM
+% IS WITH YOU. SHOULD THE PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF
+% ALL NECESSARY SERVICING, REPAIR OR CORRECTION.
+%
+%% ------------------------------------------------------------------------
+
+set(0, 'DefaultAxesFontSize', 11, 'DefaultAxesFontName', 'Times New Roman');
+set(0, 'DefaultTextFontSize', 11, 'DefaultTextFontName', 'Times New Roman');
+
+close all;
+clear all;
+
+%% ------------------------------------------------------------------------
+% ---- CIC Filter Parameters
+% ------------------------------------------------------------------------
+
+R = 1340; % Decimation factor
+N = 6; % Number of stages
+M = 1; % Differential delay (only 1)
+
+%% ------------------------------------------------------------------------
+% ---- FIR filter parameters
+% ------------------------------------------------------------------------
+
+NFIR = 64; % Filter order, must be odd when Fo = 0.5 !!!
+Bc = 32; % Coef. Bit-width
+Fo = 0.49; % Normalized Cutoff: 0.2 < Fo < 0.5;
+BETA = 8; % BETA parameter for Kaiser window (if IS_WIND = 'Y')
+
+%% ------------------------------------------------------------------------
+% ---- Save data parameters
+% ------------------------------------------------------------------------
+
+IS_COE = 'Y'; % create *.COE Xilinx file
+IS_HDR = 'N'; % create *.H file (header)
+IS_WIND = 'Y'; % use Kaiser Window for FIR corrector
+
+IS_PLOT_IDL = 'Y'; % plot ideal response
+IS_PLOT_FIR = 'Y'; % plot FIR filter IR
+IS_PLOT_ERR = 'Y'; % plot total error response in passband
+
+%% ------------------------------------------------------------------------
+% ---- CIC Compensator Design
+% ------------------------------------------------------------------------
+
+NFFT = 2^16; % FFT points for Freq Response (spectrum)
+STEP = 1/NFFT; % Step size
+w = -pi:2*pi/NFFT:pi-2*pi/NFFT;
+ff = 0:1/NFFT:1-1/NFFT;
+z = exp(1j * w);
+
+Fc = 1/(2*R);
+Fr = Fo/R;
+
+% 1 way:
+%HCIC = (1/R * (1-z.^(-R*M))./(1-z.^(-1))).^ N;
+% 2 way:
+HCIC = (R^-N*abs(1*M*sin(pi*M*R*ff) ./ sin(pi*ff)).^N);
+HCICdb = 20 * log10(abs(HCIC));
+
+fp = [0:STEP:Fo]; % Pass band frequency dots
+fs = [(Fo+STEP):STEP:0.5]; % Stop band frequency dots
+f = [fp fs]*2; % Normalized frequency dots
+f(end) = 1;
+
+% Calculate ideal response
+Mp = ones(1, length(fp)); % Pass band response; Mp(1) = 1
+Mp(2:end) = abs(M * R * sin(pi*fp(2:end)/R) ./ sin(pi*M*fp(2:end))).^(N);
+Mf = [Mp zeros(1, length(fs))];
+
+if (IS_PLOT_IDL == 'Y')
+ figure('name','FIR Ideal Response', 'Numbertitle', 'off')
+ plot(f/2, Mf, '-.', 'LineWidth', 2, 'Color',[0 0 1]);
+
+ title([{'FIR Ideal Response'};{sprintf('Fo = %i',Fo)}]);
+ xlabel ('Freq (\pi x rad / samples)');
+ ylabel ('Magnitude');
+ axis tight;
+ legend([{sprintf('Fo = %i',Fo)}]);
+ grid on;
+end
+
+% Calculate FIR
+hFIR = fir2(NFIR-1, f, Mf); % Filter length NFIR
+hFIR = hFIR / max(hFIR); % Double coefficients
+hCOE = round(hFIR*(2^(Bc-1)-1)); % Fixed point coefficients
+
+% Windowed FIR (Kaiser with BETA)
+if (IS_WIND == 'Y')
+ WIND = kaiser(NFIR, BETA); % KAISER WINDOW IS USED!
+ hWIND = fir1(NFIR-1, Fo/R, 'low', WIND);
+ hNEW = hCOE .* hWIND;% conv2(hCOE,Hwind);
+ hCOE = hNEW;
+end
+
+if (IS_PLOT_FIR == 'Y')
+ figure('name','FIR Response', 'Numbertitle', 'off')
+ plot(hFIR, '-', 'LineWidth', 2, 'Color',[1 0 0]);
+
+ title([{'FIR Response'};{sprintf('Order = %i',NFIR)}]);
+ xlabel ('Samples');
+ ylabel ('Magnitude');
+ axis tight;
+ legend([{sprintf('Order = %i',NFIR)}]);
+ grid on;
+end
+
+hFFT = 20 * log10(abs(fft(hCOE, ceil(NFFT/R))));
+hFFT = hFFT - max(hFFT);
+
+H_amp = repmat(hFFT, 1, R);
+H_amp = H_amp(1:length(ff));
+H_amp = H_amp - max(H_amp);
+
+H_comp = HCICdb + H_amp;
+H_comp = H_comp - max(H_comp);
+
+%% ------------------------------------------------------------------------
+% ---- Plot results
+% ------------------------------------------------------------------------
+
+% ---- Figure #1
+figure('name','CIC/FIR Frequency Response', 'Numbertitle', 'off')
+ plot(ff, HCICdb - max(HCICdb), '-.', 'LineWidth', 2, 'Color',[0 0 1]);
+ hold on;
+
+ plot(ff, H_amp, '--', 'LineWidth', 2, 'Color',[0 0.4 0]);
+ hold on;
+
+ plot(ff, H_comp, '-', 'LineWidth', 2, 'Color',[1 0 0]);
+ hold on;
+
+ title([{'CIC, Comp. FIR and Result'};{sprintf('Filter Order = %i, Coef. width = %i',NFIR,Bc)}]);
+ xlabel ('Freq (\pi x rad / samples)');
+ ylabel ('Magnitude (dB)');
+ axis([0 ff(NFFT)/2 -100 5]);
+ line([Fr Fr], [-400 200], 'LineWidth', 1, 'linestyle', '--', 'Color', [0 0 0]);
+ line([Fc Fc], [-400 200], 'LineWidth', 1, 'linestyle', '--', 'Color', [0 0 0]);
+ line([2*Fc 2*Fc], [-400 200], 'LineWidth', 1, 'linestyle', '--', 'Color', [0 0 0]);
+ legend('CIC filter','Comp. FIR','Sum Response','location','northeast');
+ grid on;
+
+% ---- Figure #2
+figure('name', 'CIC/FIR Frequency Response (Zoom)', 'Numbertitle', 'off')
+ plot(ff, HCICdb - max(HCICdb), '-.', 'LineWidth', 2, 'Color',[0 0 1]);
+ hold on;
+
+ plot(ff, H_amp, '--', 'LineWidth', 2, 'Color',[0 0.4 0]);
+ hold on;
+
+ plot(ff, H_comp, '-', 'LineWidth', 2, 'Color',[1 0 0]);
+ hold on;
+
+ title([{'CIC, Comp. FIR and Result'};{sprintf('Filter Order = %i, Coef. width = %i',NFIR,Bc)}]);
+ xlabel ('Freq (\pi x rad / samples)');
+ ylabel ('Magnitude (dB)');
+ axis([0 ff(NFFT)/(2*R) -7 1]);
+ line([Fr Fr], [-400 200], 'LineWidth', 1, 'linestyle', '--', 'Color', [0 0 0]);
+ grid on;
+
+%% ------------------------------------------------------------------------
+% ---- Passband irregularity
+% ------------------------------------------------------------------------
+if (IS_PLOT_ERR == 'Y')
+ pass = ceil(0.85*length(H_comp)*Fr);
+ stp = 0:(0.9*Fr)/pass:(0.9*Fr)-(0.9*Fr)/pass;
+ stp = stp(2:pass);
+ Irr = H_comp(2:pass);
+ Ism = mean(Irr);
+ Iav = (max(Irr)-min(Irr))/2;
+
+ figure('name', 'Passband irregularity', 'Numbertitle', 'off')
+ plot(stp, Irr, '--', 'LineWidth', 2, 'Color',[0 0 1]);
+ line([0 (0.9*Fr)], [Ism Ism], 'LineWidth', 2, 'linestyle', '-', 'Color', [0 0 0]);
+ grid on;
+ title([{'Passband irregularity'};{sprintf('Mean value = %f',Ism)};{sprintf('Freq error = %f (dB)',Iav)}]);
+ xlabel ('Freq (\pi x rad / samples)');
+ ylabel ('Magnitude (dB)');
+ axis tight;
+ %axis([0 ff(NFFT)/(2*R) -0.05 1]);
+end
+
+%% ------------------------------------------------------------------------
+% ---- Save coe data to files
+% ------------------------------------------------------------------------
+if (IS_COE == 'Y')
+ fid = fopen ('fir_filter.coe', 'w');
+ fprintf(fid, 'Radix = 10;\n');
+ fprintf(fid, 'Coefficient_Width = %d;\n', Bc);
+ fprintf(fid, 'Coefdata =\n');
+ for i = 1:NFIR
+ if (i == NFIR)
+ fprintf(fid, '%d;\n', hCOE(1,i));
+ else
+ fprintf(fid, '%d,\n', hCOE(1,i));
+ end
+ end
+ fclose(fid);
+end
+
+if (IS_HDR == 'Y')
+ fid = fopen ('fir_filter.h', 'w');
+ fprintf(fid, 'const int BL = %d;\n', NFIR);
+ fprintf(fid, 'const int B[%d] = {\n', NFIR);
+ for i = 1:NFIR
+ if (i == NFIR)
+ fprintf(fid, '%d}\n', hCOE(1,i));
+ else
+ fprintf(fid, '%d,\n', hCOE(1,i));
+ end
+ end
+ fclose(fid);
+end
+
\ No newline at end of file
diff --git a/Stuff/CIC_Filters/rx_fir_filter.coe b/Stuff/CIC_Filters/rx_fir_filter.coe
new file mode 100644
index 0000000..68b0b55
--- /dev/null
+++ b/Stuff/CIC_Filters/rx_fir_filter.coe
@@ -0,0 +1 @@
+6.160505e+02,-1.254348e+03,2.073743e+03,-2.985806e+03,3.644942e+03,-3.211210e+03,3.367708e+00,8.935054e+03,-2.840469e+04,6.565131e+04,-1.311256e+05,2.391218e+05,-4.086540e+05,6.639135e+05,-1.035229e+06,1.559089e+06,-2.279361e+06,3.246697e+06,-4.520661e+06,6.168553e+06,-8.270053e+06,1.091595e+07,-1.421878e+07,1.831290e+07,-2.337824e+07,2.964380e+07,-3.743396e+07,4.715353e+07,-5.927002e+07,7.373253e+07,-8.732855e+07,7.814928e+07,7.814928e+07,-8.732855e+07,7.373253e+07,-5.927002e+07,4.715353e+07,-3.743396e+07,2.964380e+07,-2.337824e+07,1.831290e+07,-1.421878e+07,1.091595e+07,-8.270053e+06,6.168553e+06,-4.520661e+06,3.246697e+06,-2.279361e+06,1.559089e+06,-1.035229e+06,6.639135e+05,-4.086540e+05,2.391218e+05,-1.311256e+05,6.565131e+04,-2.840469e+04,8.935054e+03,3.367708e+00,-3.211210e+03,3.644942e+03,-2.985806e+03,2.073743e+03,-1.254348e+03,6.160505e+02
diff --git a/Stuff/CIC_Filters/tx.m b/Stuff/CIC_Filters/tx.m
new file mode 100644
index 0000000..886bc88
--- /dev/null
+++ b/Stuff/CIC_Filters/tx.m
@@ -0,0 +1,252 @@
+%% ------------------------------------------------------------------------
+%
+% Title : test_cic.m
+% Author : Alexander Kapitanov
+% E-mail : sallador@bk.ru
+% Version : 1.0
+%
+% -------------------------------------------------------------------------
+%
+% Description :
+%
+% FIR filter compensator to correct freq response after CIC filter.
+%
+% -------------------------------------------------------------------------
+%
+% Version : 1.0
+% Date : 2017.06.03
+%
+%% ------------------------------------------------------------------------
+%
+% GNU GENERAL PUBLIC LICENSE
+% Version 3, 29 June 2007
+%
+% Copyright (c) 2018 Kapitanov Alexander
+%
+% This program is free software: you can redistribute it and/or modify
+% it under the terms of the GNU General Public License as published by
+% the Free Software Foundation, either version 3 of the License, or
+% (at your option) any later version.
+%
+% You should have received a copy of the GNU General Public License
+% along with this program. If not, see .
+%
+% THERE IS NO WARRANTY FOR THE PROGRAM, TO THE EXTENT PERMITTED BY
+% APPLICABLE LAW. EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT
+% HOLDERS AND/OR OTHER PARTIES PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY
+% OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO,
+% THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+% PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE PROGRAM
+% IS WITH YOU. SHOULD THE PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF
+% ALL NECESSARY SERVICING, REPAIR OR CORRECTION.
+%
+%% ------------------------------------------------------------------------
+
+set(0, 'DefaultAxesFontSize', 11, 'DefaultAxesFontName', 'Times New Roman');
+set(0, 'DefaultTextFontSize', 11, 'DefaultTextFontName', 'Times New Roman');
+
+close all;
+clear all;
+
+%% ------------------------------------------------------------------------
+% ---- CIC Filter Parameters
+% ------------------------------------------------------------------------
+
+R = 3350; % Interpolation factor
+N = 6; % Number of stages
+M = 1; % Differential delay (only 1)
+
+%% ------------------------------------------------------------------------
+% ---- FIR filter parameters
+% ------------------------------------------------------------------------
+
+NFIR = 64; % Filter order, must be odd when Fo = 0.5 !!!
+Bc = 32; % Coef. Bit-width
+Fo = 0.49; % Normalized Cutoff: 0.2 < Fo < 0.5;
+BETA = 8; % BETA parameter for Kaiser window (if IS_WIND = 'Y')
+
+%% ------------------------------------------------------------------------
+% ---- Save data parameters
+% ------------------------------------------------------------------------
+
+IS_COE = 'Y'; % create *.COE Xilinx file
+IS_HDR = 'N'; % create *.H file (header)
+IS_WIND = 'Y'; % use Kaiser Window for FIR corrector
+
+IS_PLOT_IDL = 'Y'; % plot ideal response
+IS_PLOT_FIR = 'Y'; % plot FIR filter IR
+IS_PLOT_ERR = 'Y'; % plot total error response in passband
+
+%% ------------------------------------------------------------------------
+% ---- CIC Compensator Design
+% ------------------------------------------------------------------------
+
+NFFT = 2^16; % FFT points for Freq Response (spectrum)
+STEP = 1/NFFT; % Step size
+w = -pi:2*pi/NFFT:pi-2*pi/NFFT;
+ff = 0:1/NFFT:1-1/NFFT;
+z = exp(1j * w);
+
+Fc = 1/(2*R);
+Fr = Fo/R;
+
+% 1 way:
+%HCIC = (1/R * (1-z.^(-R*M))./(1-z.^(-1))).^ N;
+% 2 way:
+HCIC = (R^-N*abs(1*M*sin(pi*M*R*ff) ./ sin(pi*ff)).^N);
+HCICdb = 20 * log10(abs(HCIC));
+
+fp = [0:STEP:Fo]; % Pass band frequency dots
+fs = [(Fo+STEP):STEP:0.5]; % Stop band frequency dots
+f = [fp fs]*2; % Normalized frequency dots
+f(end) = 1;
+
+% Calculate ideal response
+Mp = ones(1, length(fp)); % Pass band response; Mp(1) = 1
+Mp(2:end) = abs(M * R * sin(pi*fp(2:end)/R) ./ sin(pi*M*fp(2:end))).^(N);
+Mf = [Mp zeros(1, length(fs))];
+
+if (IS_PLOT_IDL == 'Y')
+ figure('name','FIR Ideal Response', 'Numbertitle', 'off')
+ plot(f/2, Mf, '-.', 'LineWidth', 2, 'Color',[0 0 1]);
+
+ title([{'FIR Ideal Response'};{sprintf('Fo = %i',Fo)}]);
+ xlabel ('Freq (\pi x rad / samples)');
+ ylabel ('Magnitude');
+ axis tight;
+ legend([{sprintf('Fo = %i',Fo)}]);
+ grid on;
+end
+
+% Calculate FIR
+hFIR = fir2(NFIR-1, f, Mf); % Filter length NFIR
+hFIR = hFIR / max(hFIR); % Double coefficients
+hCOE = round(hFIR*(2^(Bc-1)-1)); % Fixed point coefficients
+
+% Windowed FIR (Kaiser with BETA)
+if (IS_WIND == 'Y')
+ WIND = kaiser(NFIR, BETA); % KAISER WINDOW IS USED!
+ hWIND = fir1(NFIR-1, Fo/R, 'low', WIND);
+ hNEW = hCOE .* hWIND;% conv2(hCOE,Hwind);
+ hCOE = hNEW;
+end
+
+if (IS_PLOT_FIR == 'Y')
+ figure('name','FIR Response', 'Numbertitle', 'off')
+ plot(hFIR, '-', 'LineWidth', 2, 'Color',[1 0 0]);
+
+ title([{'FIR Response'};{sprintf('Order = %i',NFIR)}]);
+ xlabel ('Samples');
+ ylabel ('Magnitude');
+ axis tight;
+ legend([{sprintf('Order = %i',NFIR)}]);
+ grid on;
+end
+
+hFFT = 20 * log10(abs(fft(hCOE, ceil(NFFT/R))));
+hFFT = hFFT - max(hFFT);
+
+H_amp = repmat(hFFT, 1, R);
+H_amp = H_amp(1:length(ff));
+H_amp = H_amp - max(H_amp);
+
+H_comp = HCICdb + H_amp;
+H_comp = H_comp - max(H_comp);
+
+%% ------------------------------------------------------------------------
+% ---- Plot results
+% ------------------------------------------------------------------------
+
+% ---- Figure #1
+figure('name','CIC/FIR Frequency Response', 'Numbertitle', 'off')
+ plot(ff, HCICdb - max(HCICdb), '-.', 'LineWidth', 2, 'Color',[0 0 1]);
+ hold on;
+
+ plot(ff, H_amp, '--', 'LineWidth', 2, 'Color',[0 0.4 0]);
+ hold on;
+
+ plot(ff, H_comp, '-', 'LineWidth', 2, 'Color',[1 0 0]);
+ hold on;
+
+ title([{'CIC, Comp. FIR and Result'};{sprintf('Filter Order = %i, Coef. width = %i',NFIR,Bc)}]);
+ xlabel ('Freq (\pi x rad / samples)');
+ ylabel ('Magnitude (dB)');
+ axis([0 ff(NFFT)/2 -100 5]);
+ line([Fr Fr], [-400 200], 'LineWidth', 1, 'linestyle', '--', 'Color', [0 0 0]);
+ line([Fc Fc], [-400 200], 'LineWidth', 1, 'linestyle', '--', 'Color', [0 0 0]);
+ line([2*Fc 2*Fc], [-400 200], 'LineWidth', 1, 'linestyle', '--', 'Color', [0 0 0]);
+ legend('CIC filter','Comp. FIR','Sum Response','location','northeast');
+ grid on;
+
+% ---- Figure #2
+figure('name', 'CIC/FIR Frequency Response (Zoom)', 'Numbertitle', 'off')
+ plot(ff, HCICdb - max(HCICdb), '-.', 'LineWidth', 2, 'Color',[0 0 1]);
+ hold on;
+
+ plot(ff, H_amp, '--', 'LineWidth', 2, 'Color',[0 0.4 0]);
+ hold on;
+
+ plot(ff, H_comp, '-', 'LineWidth', 2, 'Color',[1 0 0]);
+ hold on;
+
+ title([{'CIC, Comp. FIR and Result'};{sprintf('Filter Order = %i, Coef. width = %i',NFIR,Bc)}]);
+ xlabel ('Freq (\pi x rad / samples)');
+ ylabel ('Magnitude (dB)');
+ axis([0 ff(NFFT)/(2*R) -7 1]);
+ line([Fr Fr], [-400 200], 'LineWidth', 1, 'linestyle', '--', 'Color', [0 0 0]);
+ grid on;
+
+%% ------------------------------------------------------------------------
+% ---- Passband irregularity
+% ------------------------------------------------------------------------
+if (IS_PLOT_ERR == 'Y')
+ pass = ceil(0.85*length(H_comp)*Fr);
+ stp = 0:(0.9*Fr)/pass:(0.9*Fr)-(0.9*Fr)/pass;
+ stp = stp(2:pass);
+ Irr = H_comp(2:pass);
+ Ism = mean(Irr);
+ Iav = (max(Irr)-min(Irr))/2;
+
+ figure('name', 'Passband irregularity', 'Numbertitle', 'off')
+ plot(stp, Irr, '--', 'LineWidth', 2, 'Color',[0 0 1]);
+ line([0 (0.9*Fr)], [Ism Ism], 'LineWidth', 2, 'linestyle', '-', 'Color', [0 0 0]);
+ grid on;
+ title([{'Passband irregularity'};{sprintf('Mean value = %f',Ism)};{sprintf('Freq error = %f (dB)',Iav)}]);
+ xlabel ('Freq (\pi x rad / samples)');
+ ylabel ('Magnitude (dB)');
+ axis tight;
+ %axis([0 ff(NFFT)/(2*R) -0.05 1]);
+end
+
+%% ------------------------------------------------------------------------
+% ---- Save coe data to files
+% ------------------------------------------------------------------------
+if (IS_COE == 'Y')
+ fid = fopen ('fir_filter.coe', 'w');
+ fprintf(fid, 'Radix = 10;\n');
+ fprintf(fid, 'Coefficient_Width = %d;\n', Bc);
+ fprintf(fid, 'Coefdata =\n');
+ for i = 1:NFIR
+ if (i == NFIR)
+ fprintf(fid, '%d;\n', hCOE(1,i));
+ else
+ fprintf(fid, '%d,\n', hCOE(1,i));
+ end
+ end
+ fclose(fid);
+end
+
+if (IS_HDR == 'Y')
+ fid = fopen ('fir_filter.h', 'w');
+ fprintf(fid, 'const int BL = %d;\n', NFIR);
+ fprintf(fid, 'const int B[%d] = {\n', NFIR);
+ for i = 1:NFIR
+ if (i == NFIR)
+ fprintf(fid, '%d}\n', hCOE(1,i));
+ else
+ fprintf(fid, '%d,\n', hCOE(1,i));
+ end
+ end
+ fclose(fid);
+end
+
\ No newline at end of file
diff --git a/Stuff/CIC_Filters/tx_fir_filter.coe b/Stuff/CIC_Filters/tx_fir_filter.coe
new file mode 100644
index 0000000..c3f9e73
--- /dev/null
+++ b/Stuff/CIC_Filters/tx_fir_filter.coe
@@ -0,0 +1 @@
+6.161515e+02,-1.254539e+03,2.074036e+03,-2.986196e+03,3.645380e+03,-3.211562e+03,3.366273e+00,8.935876e+03,-2.840705e+04,6.565619e+04,-1.311343e+05,2.391357e+05,-4.086749e+05,6.639427e+05,-1.035267e+06,1.559137e+06,-2.279419e+06,3.246760e+06,-4.520726e+06,6.168612e+06,-8.270095e+06,1.091596e+07,-1.421874e+07,1.831279e+07,-2.337803e+07,2.964346e+07,-3.743344e+07,4.715279e+07,-5.926900e+07,7.373117e+07,-8.732687e+07,7.814772e+07,7.814772e+07,-8.732687e+07,7.373117e+07,-5.926900e+07,4.715279e+07,-3.743344e+07,2.964346e+07,-2.337803e+07,1.831279e+07,-1.421874e+07,1.091596e+07,-8.270095e+06,6.168612e+06,-4.520726e+06,3.246760e+06,-2.279419e+06,1.559137e+06,-1.035267e+06,6.639427e+05,-4.086749e+05,2.391357e+05,-1.311343e+05,6.565619e+04,-2.840705e+04,8.935876e+03,3.366273e+00,-3.211562e+03,3.645380e+03,-2.986196e+03,2.074036e+03,-1.254539e+03,6.161515e+02
diff --git a/Stuff/Timers.xlsx b/Stuff/Timers.xlsx
new file mode 100644
index 0000000..d552b7d
Binary files /dev/null and b/Stuff/Timers.xlsx differ
diff --git a/Stuff/cic_nco.xlsx b/Stuff/cic_nco.xlsx
new file mode 100644
index 0000000..32f5f10
Binary files /dev/null and b/Stuff/cic_nco.xlsx differ
diff --git a/Stuff/logo.png b/Stuff/logo.png
new file mode 100644
index 0000000..d18affc
Binary files /dev/null and b/Stuff/logo.png differ