CIC фильтр по статьям
Добавлено: 06 июл 2017, 17:47
Начитался прекрасных статей и решил сделать интерполяцию цифрового сигнала по
http://www.dsplib.ru/content/cic/cic.html
http://www.dsplib.ru/content/cicid/cicid.html
Делаю в лоб, по написанному.
Но после ФНЧ (интергаторов) получается полная абракадабра. Поскажите пожалуйста, ЧТЯДНТ?
http://www.dsplib.ru/content/cic/cic.html
http://www.dsplib.ru/content/cicid/cicid.html
Делаю в лоб, по написанному.
Но после ФНЧ (интергаторов) получается полная абракадабра. Поскажите пожалуйста, ЧТЯДНТ?
Код: Выделить всё
close all; clc; clear;
Fs = 1000;
T = 1/Fs;
L = 1000;
t = (0:L-1)*T;
x = 5*sin(2*pi*50*t);
% Коэффициент интерполяции
R = 3;
% Величина задержки
D = 2*R;
% Порядок фильтра
N = 4;
b = 1;
a = 1;
for n = 1 : N
b = conv(b, [1 0 -1]);
a = conv(a, [1 -1]);
end
lb = length(b);
la = length(a);
% Усиление
K = 20*N*log10(D);
xR = zeros(1, floor(length(x)*R));
for n = 1 : length(x)
xR(n*R) = x(max(1,n-lb+1):n) * b(end:-1:max(1,lb-n+1))';
end
xI = zeros(size(xR));
for k = 2 : length(xI)
xI(k) = xR(k) - xI(max(1,k-la+1):k-1) * a(end-1:-1:max(1,la-k+1))';
end