git-svn-id: http://moon:8086/svn/matlab/trunk@157 801c6759-fa7c-4059-a304-17956f83a07c
31 lines
601 B
Matlab
Executable File
31 lines
601 B
Matlab
Executable File
function y2 = decim_eval(N, M)
|
|
|
|
x = [1 1 0 0 1 1 0 0 1 1 0 0 1 1 0 0 1 1 0 0 1 1 0 0 1 1 0 0 1 1 0 0];
|
|
x = randn(1, 1000);
|
|
x = 1:20;
|
|
w = FIRCalcLowpass(0.5, N);
|
|
w = 1:N;
|
|
|
|
y = filter(w, 1, x)';
|
|
y_dec = y(1:M:lge(y))
|
|
y_dec2 = decim(w, M, N, x)'
|
|
|
|
y2 = y_dec2 - y_dec;
|
|
|
|
function [y] = decim(w, M, N, x)
|
|
Nout = lge(x(1:M:lge(x)));
|
|
|
|
for k=0:M-1
|
|
nz = fix(k/M) + (k > 0);
|
|
d = (M-k) * (k > 0);
|
|
xp = [zeros(1, nz) x(d+1:M:lge(x))]
|
|
% xp = [zeros(1, k) x];
|
|
% xp = xp(1:M:lge(x))
|
|
wp = w(k+1:M:N);
|
|
yp = filter(wp, 1, xp);
|
|
summer(k+1, :) = yp(1:Nout);
|
|
end;
|
|
y = sum(summer, 1);
|
|
|
|
return;
|