Sie sind auf Seite 1von 2

clear all;

close all;
clc
%% Ventana de Kaiser
A = -20*log10(0.02);
if A>=50
alpha = 0.1102*(A-8.7);
elseif (A>21)&&(A<50)
alpha = 0.5842*(A-21)^(0.4) + 0.07886*(A-21);
elseif A<=21
alpha = 0;
end
Nh = round((A-7.95)/(2.285*0.01));
Ventana = kaiser(Nh,alpha);
Nh = size(Ventana);
%% Filtro Pasa Bajos
Fs = 8000;
Fc = 800;
Omg = 2*pi*Fc/Fs;
n = -(Nh-1)/2:(Nh-1)/2;
Hlp = (Omg/pi)*sinc(Omg*n/pi);
Hlp = Hlp.*Ventana';
% Hlp = size(Hlp);
fvtool(Hlp,1)
%
%
%
%
%
%

Fichero = fopen('Coef_LP.h','w+');
fprintf(Fichero,'#define N %d\n',length(Hlp));
fprintf(Fichero,'float hk[] = {\n');
fprintf(Fichero,'%f,\n', Hlp);
fprintf(Fichero,'};\n');
fclose(Fichero);

%% Filtro Pasa Altas


%
% Fs = 8000;
% Fc = 3200;
% Omg = 2*pi*Fc/Fs;
% Omgc = pi - Omg;
% Fc = (Omgc*Fs)/(2*pi);
% Omg = 2*pi*Fc/Fs;
% n = -(Nh-1)/2:(Nh-1)/2;
% Hhp = (Omg/pi)*sinc((Omg/pi)*n).*exp(pi*n*1i);
% Hhp = Hhp.*Ventana';
% % Hlp = size(Hhp);
% fvtool(Hhp,1)
%
% Fichero = fopen('Coef_HP.h','w+');
% fprintf(Fichero,'#define N %d\n',length(Hhp));
% fprintf(Fichero,'float hk[] = {\n');
% fprintf(Fichero,'%f,\n', Hhp);
% fprintf(Fichero,'};\n');
% fclose(Fichero);
%% Filtro Pasa Banda
% Fs = 8000;

%
%
%
%
%
%
%
%
%

Fc = 150;
Fb = 1050;
Omg = 2*pi*Fc/Fs;
Omgb = 2*pi*Fb/Fs;
n = -(Nh-1)/2:(Nh-1)/2;
Hpb = 2*(Omg/pi)*sinc((Omg/pi)*n).*cos(n*Omgb);
Hpb = Hpb.*Ventana';
% Hlp = size(Hpb);
fvtool(Hpb,1)

%
%
%
%
%
%

Fichero = fopen('Coef_PB.h','w+');
fprintf(Fichero,'#define N %d\n',length(Hpb));
fprintf(Fichero,'float hk[] = {\n');
fprintf(Fichero,'%f,\n', Hpb);
fprintf(Fichero,'};\n');
fclose(Fichero);

%% Rechaza Banda
Fs = 8000;
Fb = 1200;
Fa = 3100;
Omgb = 2*pi*Fb/Fs;
Omga = 2*pi*Fa/Fs;
n = -(Nh-1)/2:(Nh-1)/2;
Hpb = (Omgb/pi)*sinc((Omgb/pi)*n);
Hpa = (Omga/pi)*sinc((Omga/pi)*n).*exp(pi*n*1i);
Hrb = Hpb - Hpa;
Hrb = Hrb.*Ventana';
% Hlp = size(Hrb);
fvtool(Hrb,1)
%
% Fichero = fopen('Coef_RB.h','w+');
% fprintf(Fichero,'#define N %d\n',length(Hrb));
% fprintf(Fichero,'float hk[] = {\n');
% fprintf(Fichero,'%f,\n', Hrb);
% fprintf(Fichero,'};\n');
% fclose(Fichero);

Das könnte Ihnen auch gefallen