Académique Documents
Professionnel Documents
Culture Documents
Filtros IIR
Filtros IIR
clear all
clc
Fs = 8e3;
%% PasaBajo
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
% [bk,ak] = butter(4,800/(Fs/2),'low');
[bk,ak] = ellip(6,2,40,0.2);
Hlp = impz(bk,ak);
fvtool(Hlp)
m = floor(15 - log2(max(abs(Hlp))));
if m > 16
m = 16;
end
Hlp = Hlp*2^(m);
Hlp = floor(Hlp);
% Hlp = Hlp(1,1:end-1);
Fichero = fopen('Coef_LPPFIIR.h','w+');
fprintf(Fichero,'#define N %d\n',length(Hlp));
fprintf(Fichero,'#define m %d\n',m);
fprintf(Fichero,'#include <stdint.h> \n');
fprintf(Fichero,'int hk[] = {\n');
fprintf(Fichero,'%d,\n', Hlp);
fprintf(Fichero,'};\n');
fclose(Fichero);
%% PasaAlto
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
[bk,ak] = ellip(6,2,40,0.2,'high');
Hhp = impz(bk,ak);
fvtool(Hhp)
m = floor(15 - log2(max(abs(Hhp))));
if m > 16
m = 16;
end
Hhp = Hhp*2^(m);
Hhp = floor(Hhp);
% Hhp = Hhp(1,1:end-1);
Fichero = fopen('Coef_HPPFIIR.h','w+');
fprintf(Fichero,'#define N %d\n',length(Hhp));
fprintf(Fichero,'#define m %d\n',m);
fprintf(Fichero,'#include <stdint.h> \n');
fprintf(Fichero,'int16_t hk[] = {\n');
fprintf(Fichero,'%d,\n', Hhp);
fprintf(Fichero,'};\n');
fclose(Fichero);
%% PasaBanda
% %
% [bk,ak] = ellip(6,2,40,[0.225 0.3],'bandpass');
% Hpb = impz(bk,ak);
% fvtool(Hpb)
%
% m = floor(15 - log2(max(abs(Hpb))));
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
if m > 16
m = 16;
end
Hpb = Hpb*2^(m);
Hpb = floor(Hpb);
% Hpb = Hpb(1:end-1,1);
Fichero = fopen('Coef_PBPFIIR.h','w+');
fprintf(Fichero,'#define N %d\n',length(Hpb));
fprintf(Fichero,'#define m %d\n',m);
fprintf(Fichero,'#include <stdint.h> \n');
fprintf(Fichero,'int16_t hk[] = {\n');
fprintf(Fichero,'%d,\n', Hpb);
fprintf(Fichero,'};\n');
fclose(Fichero);
%% RechazaBanda
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%