⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 compute_partial_product.m

📁 This an interpolating by 2 half-band filter with 79 taps (40 none-zero coefficients).
💻 M
字号:
coef=[-524 459 -236 9 -20 41 -76 133 -221 354 -545 815 -1190 1705 -2420 3437 -4978 7614 -13457 41569 41569 -13457 7614 -4978 3437 -2420 1705 -1190 815 -545 354 -221 133 -76 41 -20 9 -236 459 -524];
NUM_TAP = 20;
% Input bit width is 18 (divided into 3 slices feeding separate M4K blocks
ADD_BIT = 6;

% Create address line inputs for MSB and LSB array
for i=1:2^ADD_BIT
    LSB_add(i) = i-1;
    if ((i-1)>=32)
        MSB_add(i) = LSB_add(i) - 2^ADD_BIT;
    else
        MSB_add(i) = i-1;
    end
end


pp_coef = zeros(2^ADD_BIT, 2, NUM_TAP);


for i=1:NUM_TAP
    for j=1:2^ADD_BIT
        pp_coef(j,1,i) = coef(i) * MSB_add(j);
        pp_coef(j,2,i) = coef(i) * LSB_add(j);
    end
end

pp_coef_tdm = zeros(32, 8, NUM_TAP/2);

% Reformat partiatl products to store as hex
index = 1;
for i=1:NUM_TAP/2
    for j=1:32
        for k=1:8
            if (index > 2^ADD_BIT)
                index = 1;
            end
            if (j<=8)
                pp_coef_tdm(j, k, i) = pp_coef(index, 1, i);
            elseif (j>8 && j<=16)
                pp_coef_tdm(j, k, i) = pp_coef(index, 1, i+(NUM_TAP/2));
            elseif (j>16 && j<=24)
                pp_coef_tdm(j, k, i) = pp_coef(index, 2, i);
            else
                pp_coef_tdm(j, k, i) = pp_coef(index, 2, i+(NUM_TAP/2));
            end
            index=index+1;
        end
    end
end


⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -