--- Quote Start ---
Thanks FvM.
I assume the equations for bit growth given in attached doc look too involved to be wrongly typed from original source(Hogenauer's).
But I did notice discrepancy of last equation when applied to i = N as Bout = Bin + N -1
Anyway do you have access to Hogenauer's doc? or do you know where those given equations go wrong.
I know Hogenauer also included method for register pruning to reduce bit growth by distributing quantisation noise across stages. Naturally too involved and too specialised corner and may be unwarranted with FPGAs applications.
--- Quote End ---
I have got the Hogenauer's doc.i am attaching that document .In that observe cic interpolation filter
design.In that observe register growth equation and design example.with the matlab code as below
Bin = 8;
%input width
N = 4;
%stages of comb or integrator
M = 2;
%differential delay
R = 512;
%interpolation rate
%cic decimator at any stage
Bout = N * log2(R*M) + Bin;
%cic interpolator per ith stage
%stages 1~N
for i = 1:N
G = 2^i;
Bout =( Bin + log2(G));
d(i) = Bout;
end
%N+1 ~ 2N stages
for i = N+1:N*2
G = (2^(2*N-1)*(R*M)^(i-N))/R;
Bout =( Bin + log2(G));
d(i) = Bout;
end
for
i = 1:N*2
fprintf(
'%i %i\r',i,d(i));
end
I got the bout values
1 9
2 10
3 11
4 12
5 16
6 26
7 36
8 46
which is not matching the values
9,10, 11,12, 12,21,30, and 39, respectively,which is not equal to the got
values.is there any mistake in the matlab code?