public DataTable getDataTable() throws Exception
    {
        int l = bitString.length();
        int bits[] = new int[l];
        
        // Initialize both arrays that will contain
        // the voltage and the time axis.
        int ticks = DIVISIONS * l;
        x = new Double[ticks];
        y = new Double[ticks];
        
        double totalTime = l / bitrate;
        double tick = totalTime / ( DIVISIONS * l );
        
        for ( int i = 0 ; i < l ; i++ )
        {
            if ( bitString.charAt(i) == '0' )
                bits[i] = 0;
            else
                bits[i] = 1;
        }
        
        double t = 0;
        for ( int i = 0 ; i < x.length ; i++ )
        {
            x[i] = t;
            t += tick;
        }
        
        process(bits);
        
        DataTable dataTable = new DataTable(Double.class, Double.class);
        for ( int i = 0 ; i < ticks ; i++ )
        {
            dataTable.add(x[i], y[i]);
        }
        
        return dataTable;
    }