Problems with Matlab Projects? You may face many Problems, but do not worry we are ready to solve your Problems. All you need to do is just leave your Comments. We will assure you that you will find a solution to your project along with future tips. On Request we will Mail you Matlab Codes for Registered Members of this site only, at free service...Follow Me.

ANALYSIS OF FINITE WORD-LENGTH EFFECTS

ANALYSIS OF FINITE WORD-LENGTH EFFECTS

The MATLAB function a2dR given below can be used to generate the decimal equivalent of the binary representation in sign-magnitude form of a decimal number with a specified number of bits for the fractional part obtained by rounding.

function beq = a2dR(d,n)
% BEQ = A2DR(D, N) generates the decimal
% equivalent beq of the binary representation
% of a decimal number D with N bits for the
% magnitude part obtained by rounding
%
m = 1; d1 = abs(d);
while fix(d1) > 0
d1 = abs(d)/(10^m);
m = m+1;
end
beq = 0;d1 = d1 + 2^(-n-1);
for k = 1:n
beq = fix(d1*2)/(2^k) + beq;
d1 = (d1*2) - fix(d1*2);
end
beq = sign(d).*beq.*10^(m-1);

To compare the performance of the direct-form realization of an IIR transfer
function with that of a cascade realization with both realized with quantized coefficients.
Program P9 2 evaluates the effect of multiplier coefficient quantizations on the cascade
form realization

% Program
% Coefficient Quantization Effects on Cascade
% Realization of an IIR Transfer Function
clf;
[z,p,k] = ellip(6,0.05,60,0.4);
[b,a] = zp2tf(z,p,k);
[g,w] = gain(b,a);
sos = zp2sos(z,p,k);
sosq = a2dT(sos,6);
R1 = sosq(1,:);R2 = sosq(2,:);R3 = sosq(3,:);
b1 = conv(R1(1:3),R2(1:3));bq = conv(R3(1:3),b1);
a1 = conv(R1(4:6),R2(4:6));aq = conv(R3(4:6),a1);
[gq,w] = gain(bq,aq);
plot(w/pi,g,’b’, w/pi,gq,’r--’);
axis([0 1 -80 1]);grid
xlabel(’\omega /\pi’);ylabel(’Gain, dB’);
title(’original - solid line; quantized - dashed line’);
pause
zplane(b,a);
hold on;
pzplot(bq,aq);
title(’Original pole-zero locations: x, o; New pole-zero locations: +, *’)

The above two programs can be modified easily to investigate the multiplier coefficient
effects on an FIR transfer function, as illustrated by Program P9 3 given below for the
direct-form realization.

% Program
% Coefficient Quantization Effects on Direct Form
% Realization of an FIR Transfer Function
%
clf;
f = [0 0.4 0.45 1];
m = [1 1 0 0];
b = firpm(19, f, m);
[g,w] = gain(b,1);
bq = a2dT(b,5);
[gq,w] = gain(bq, 1);
plot(w/pi,g,’b-’,w/pi,gq,’r--’);
\axis([0 1 -60 10]);grid
xlabel(’\omega /\pi’); ylabel(’Gain, dB’);
legend(’original’, ’quantized’);
pause zplane(b);
hold on
pzplot(bq);
hold off
title(’Original pole-zero locations: x, o; New pole-zero locations: +, *’)

to investigate the propagation of input quantization-noise to the output of a causal, stable LTI digital filter, the function noisepwr1 given below can be employed

function nvar = noisepwr1(num,den)
% Computes the output noise variance due
% to input quantization of a digital filter
% based on a partial-fraction approach
%
% num and den are the numerator and denominator
% polynomial coefficients of the IIR transfer function
%
[r,p,K] = residue(num,den);
R = size(r,1);
R2 = size(K,1);
if R2 > 1
disp(’Cannot continue...’);
return;
end
if R2 == 1
nvar = K^2;
else
nvar = 0;
end
% Compute roundoff noise variance
for k = 1:R,
for m = 1:R,
integral = r(k)*conj(r(m))/(1-p(k)*conj(p(m)));
nvar = nvar + integral;
end
end
disp(’Output Noise Variance = ’);disp(real(nvar))}

0 comments:

Post a Comment

Recent Comments

Popular Matlab Topics

Share your knowledge - help others

Crazy over Matlab Projects ? - Join Now - Follow Me

Sites U Missed to Visit ?

Related Posts Plugin for WordPress, Blogger...

Latest Articles

Special Search For Matlab Projects

MATLAB PROJECTS

counter

Bharadwaj. Powered by Blogger.