OpenCores
URL https://opencores.org/ocsvn/wdsp/wdsp/trunk

Subversion Repositories wdsp

[/] [wdsp/] [trunk/] [sw/] [matlab-scripts/] [fft/] [frac2bin.m] - Blame information for rev 5

Details | Compare with Previous | View Log

Line No. Rev Author Line
1 5 parrado
function [output]=frac2bin(a,ibits,fbits);
2
%  [output]=frac2bin(a,ibits, fbits);
3
%           a= number to be converted
4
%           ibits=integer part bits, must be an integer >0
5
%           fbits=number of  fractional bits, must be an integer>=0
6
%       This returns an array [output] that is the input number
7
%       in twos  complement form
8
%        [output] is ibits+fbits long
9
%    **NOTE**   This is not  idiot proof, and will cause problems if the number is too big
10
%               for the nu mber of bits specified-1.
11
 
12
if   (a>=0)
13
      bitsign=1;
14
    number=a;
15
else
16
    bitsign=-1;
17
    number=(a*-1);
18
end
19
ipart=number-rem(number,1);
20
fpart=rem(number,1);
21
unout (ibits+fbits)=0;
22
signedzero=1 ;
23
 
24
if ibits~=1
25
    for k=(ibits-1):-1:1,
26
        if ipart>=2^(k-1)
27
            unout(k+fbits)=1;
28
            ipart=ipart-2^(k-1);
29
            signedzero=0;
30
        end
31
    end
32
end
33
 
34
for k=fbits:-1:1,
35
    fpart=fpart*2;
36
    if fpart>=1
37
         unout(k)=1;
38
        fpart=fpart-1;
39
        signedzero=0;
40
    end
41
end
42
 
43
if (bitsign==-1) & (signedzero==0)
44
    testbit=1;
45
    for k=1:(ibits+fbits-1),
46
        if ((testbit==1) & (unout(k)==      1))
47
            testbit=0;
48
        elseif ((testbit==0) & (unout(k)==0))
49
            unout(k)=1;
50
        elseif ((testbit==0) & (unout(k)==1))
51
            unout(k)=0;
52
 
53
 
54
 
55
 
56
        end
57
    end
58
    unout(ibits+fbits)=1;
59
end
60
output=unout;

powered by: WebSVN 2.1.0

© copyright 1999-2024 OpenCores.org, equivalent to Oliscience, all rights reserved. OpenCores®, registered trademark.