Documentos de Académico
Documentos de Profesional
Documentos de Cultura
function y=circfold(x,N)
% Circular time reversal (folding)
if length(x) > N; error('N < length(x)'); end
x=[x zeros(1,N-length(x))];
n=(0:1:N-1);
y=x(mod(-n,N)+1);
function y=cirshift0(x,k,N)
% Circular shift of a sequence
if length(x) > N; error('N < length(x)');
end
x=[x zeros(1,N-length(x))];
n=(0:1:N-1); y=x(mod(n-k,N)+1);
function hd = ideal_lp(wc,M);
% Cálculo del filtro pasa bajo ideal
% [hd] = ideal_lp(wc,M)
% hd = respuesta de impulso ideal entre 0 y M-1
% wc = frecuencia de corte en radianes
% M = longitud del filtro ideal
%
alpha = (M-1)/2;
n = [0:1:(M-1)];
m = n - alpha + eps;
hd = sin(wc*m) ./ (pi*m);
[H,w] = freqz(b,a,1000,'whole');
H = (H(1:1:501))'; w = (w(1:1:501))';
mag = abs(H);
db = 20*log10((mag+eps)/max(mag));
pha = angle(H);
% pha = unwrap(angle(H));
grd = grpdelay(b,a,w);
% grd = diff(pha);
% grd = [grd(1) grd];
% grd = [0 grd(1:1:500); grd; grd(2:1:501) 0];
% grd = median(grd)*500/pi;